如何设置void的值**

时间:2012-02-13 20:39:20

标签: c void-pointers sbrk

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

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

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

*(void *)temp = NULL;

我的编译器告诉我,我无法取消引用void *。我该如何解决这个错误?

2 个答案:

答案 0 :(得分:1)

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

如果它被声明为void**,那么*temp = NULL就可以了。

答案 1 :(得分:1)

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

如果您想将NULL放入temp指向的地址,请使用*(void**)temp=NULL