该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
void **darray_new(int row,int col,int size_t){
void **arr;
arr=(void **) malloc(sizeof(void*)*row+size_t*row*col);
if(arr!=NULL){
unsigned head;
head=unsigned(arr+row);
memset(arr,0,sizeof(void*)*row+size_t*row*col);
while(row--){
arr[row]=(void*)(head+row*col*size_t);
}
}
return arr;
}
void darray_free(void **arr){
if(arr!=NULL) free(arr);
}
void *darray2array(void **arr,int row){
return (void*)(arr+row);
}
我是根据这个版本改的:
#include
#include
#include
void **darray_new(int row, int col, int size)
{
void **arr;
arr = (void **) malloc(sizeof(void *) * row + size * row * col);
if (arr != NULL)
{
void *head;
head = (void *) arr + sizeof(void *) * row; memset(arr, 0, sizeof(void *) * row + size * row * col); while (row--)
arr[row] = head + size * row * col;
}
return arr;
}
void darray_free(void **arr)
{
if (arr != NULL)
free(arr);
}
不知道我改的有没有错�