1

所以我尝试使用以下代码在不使用 malloc 的情况下向堆中添加一些内存(size 是函数中的无符号 int 参数,而不是设定的数字)

void * temp = sbrk(sizeof(void*)+sizeof(unsigned int)+size);

现在我想将 temp 中的 void * 的值设置为 NULL,但是当我尝试这样做时

*(void *)temp = NULL;

我的编译器告诉我不能取消引用 void *. 我该如何解决这个错误?

4

2 回答 2

2

您已声明temp为 a void*,而不是 a void**

如果将其声明为 a void**then*temp = NULL将起作用。

于 2012-02-13T20:41:25.153 回答
2

如果要更改 的值temp,请使用temp=NULL

如果要输入指向NULL的地址temp,请使用*(void**)temp=NULL.

于 2012-02-13T20:43:50.057 回答