所以我想使用下面的代碼來添加一些內存到堆中而不使用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