2012-02-13 49 views
1

所以我想使用下面的代码来添加一些内存到堆中而不使用malloc(size是函数中的一个unsigned int参数,而不是一个设置的数字)如何设置一个空值**

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

现在我想,当我尝试做来设置临时的无效*的值为NULL,但是

*(void *)temp = NULL; 

我的编译器告诉我,我不能提领一个void *。我该如何解决这个错误?

+2

尝试'*(void **)temp = NULL;'。 – 2012-02-13 20:43:32

回答

1

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

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

+0

完美解决。谢谢!! – mrswmmr 2012-02-13 20:57:31

1

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

如果它被声明为void**那么*temp = NULL将起作用。