我有一个看起来像这样的代码
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);
仅当可以确定 sizeof(*array)
时,才能计算 array+k
。 sizeof(*array)
无法确定 array
的类型是否为 void*
。
关于c++ - 如何在一个指针数组中存储可变大小的空指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32175210/