所以我想使用下面的代码来添加一些内存到堆中而不使用malloc(size是函数中的一个unsigned int参数,而不是一个设置的数字)如何设置一个空值**
void * temp = sbrk(sizeof(void*)+sizeof(unsigned int)+size);
现在我想,当我尝试做来设置临时的无效*的值为NULL,但是
*(void *)temp = NULL;
我的编译器告诉我,我不能提领一个void *。我该如何解决这个错误?
所以我想使用下面的代码来添加一些内存到堆中而不使用malloc(size是函数中的一个unsigned int参数,而不是一个设置的数字)如何设置一个空值**
void * temp = sbrk(sizeof(void*)+sizeof(unsigned int)+size);
现在我想,当我尝试做来设置临时的无效*的值为NULL,但是
*(void *)temp = NULL;
我的编译器告诉我,我不能提领一个void *。我该如何解决这个错误?
如果要更改temp
的值,请使用temp=NULL
。
如果您想在temp
指向的地址中输入NULL
,请使用*(void**)temp=NULL
。
完美解决。谢谢!! – mrswmmr 2012-02-13 20:57:31
您已将temp
声明为void*
而不是void**
。
如果它被声明为void**
那么*temp = NULL
将起作用。
尝试'*(void **)temp = NULL;'。 – 2012-02-13 20:43:32