如何在一个指针数组中存储可变大小的空指针?
How to store void pointers of variable size in one single pointer array?
我有一个看起来像这样的代码
void * mypointer;
void * array = malloc(sizeof(void*)*10)
loop{
mypointer = malloc(some random size);
memset(mypointer,start,end)
array[i++] = mypointer++
}
现在抛出一个异常
'void*' is unknown size for array and 'void' illeagal with all types
编辑
我也试过 **
数组,但它也会抛出异常。
因为array
应该是一个指针数组,所以使用:
void ** array = malloc(sizeof(void*)*10)
当你使用
void* array = ...
您不能像在下一行中那样索引 array
。
array[i++] = mypointer++;
记住
array[k] = *(array+k);
array+k
只有在sizeof(*array)
可以确定的情况下才能评价。 sizeof(*array)
无法确定 array
是否属于 void*
。
我有一个看起来像这样的代码
void * mypointer;
void * array = malloc(sizeof(void*)*10)
loop{
mypointer = malloc(some random size);
memset(mypointer,start,end)
array[i++] = mypointer++
}
现在抛出一个异常
'void*' is unknown size for array and 'void' illeagal with all types
编辑
我也试过 **
数组,但它也会抛出异常。
因为array
应该是一个指针数组,所以使用:
void ** array = malloc(sizeof(void*)*10)
当你使用
void* array = ...
您不能像在下一行中那样索引 array
。
array[i++] = mypointer++;
记住
array[k] = *(array+k);
array+k
只有在sizeof(*array)
可以确定的情况下才能评价。 sizeof(*array)
无法确定 array
是否属于 void*
。