2012-02-13 70 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將起作用。