- 帖子
- 32
- 主题
- 15
- 精华
- 0
- 积分
- 78
- 在线时间
- 3 小时
- 注册时间
- 2007-5-31
|
我们最常见的方法是:
char ** pp;
pp = (char**)malloc(sizeof(char*)*size);
for (int i = 0; i++; i < size){
pp = (char*)malloc(sizeof(char)*sizetwo)
}
牛人方法是:
struct xxx **x;
x = (struct xxx **) darray_new(5, 4, sizeof(struct xxx));
...
这里就可以用 x[1][3] ... x[0][3] ... 来操作了:)
...
darray_free(x);
#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);
} |
|