所以我尝试使用以下代码在不使用malloc的情况下向堆中添加一些内存(size是函数中的unsigned int参数,而不是设置数)
void * temp = sbrk(sizeof(void*)+sizeof(unsigned int)+size);
现在我想将temp中的void *值设置为NULL,但是当我尝试
时*(void *)temp = NULL;
我的编译器告诉我,我无法取消引用void *。我该如何解决这个错误?
答案 0 :(得分:1)
您已将temp
声明为void*
,而不是void**
。
如果它被声明为void**
,那么*temp = NULL
就可以了。
答案 1 :(得分:1)
如果您想更改temp
的值,请使用temp=NULL
。
如果您想将NULL
放入temp
指向的地址,请使用*(void**)temp=NULL
。