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

标签 c++ c pointers visual-c++

我有一个看起来像这样的代码

  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+ksizeof(*array) 无法确定 array 的类型是否为 void*

关于c++ - 如何在一个指针数组中存储可变大小的空指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32175210/

相关文章:

c++ - 隐藏参数 C++ 的有趣案例(参数未在 if block 中隐藏)

c++ - 我遇到了可怕的 LNK2019 错误,不知道从这里开始。

Ubuntu 上 C 的 MySql

C 指针、最小值和最大值

c - 指向函数及其返回类型 (void) 的指针

c++ - 如何使用智能指针作为类属性来复制对象?

java - C++ openssl SHA256 运行速度比 JDK SHA256 实现慢

c - 使 C 免受缓冲区溢出和其他错误影响的选项?

C 编译器可以实现有符号右移 "unreasonably"吗?

objective-c - 指针与整数的比较