如何在一个指针数组中存储可变大小的空指针?

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*