Как установить значение void ** - PullRequest
1 голос
/ 14 февраля 2012

Поэтому я пытаюсь использовать следующий код для добавления некоторой памяти в кучу без использования malloc (размер - это беззнаковый параметр int в функции, а не заданное число)

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

ТеперьЯ хочу установить значение void * в temp равным NULL, однако, когда я пытаюсь сделать

*(void *)temp = NULL;

, мой компилятор говорит мне, что я не могу разыменовать void *.Как мне решить эту ошибку?

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

Если вы хотите изменить значение temp, используйте temp=NULL.

Если вы хотите поместить NULL в адрес, на который указывает temp, используйте *(void**)temp=NULL.

1 голос
/ 14 февраля 2012

Вы объявили temp как void*, а не void**.

Если бы оно было объявлено как void**, тогда *temp = NULL сработало бы.

...