Предположим, у вас есть узел struct
, с атрибутом, void* data
.Установка значения указателя void на целое число
Можно ли установить значение этого указателя для некоторого произвольного целочисленного значения (т. Е. Вместо того, чтобы делать что-то вроде node->data = &random_integer
).
Стараюсь следующие строки:
NodePtr node = malloc(sizeof(Node));
*((int*)(node->data)) = 0;
компилируется без ошибок и предупреждений, но вызывает Segfault. Я не совсем уверен, почему.
Я мог бы легко установить указатель void на &int
, но тогда мне пришлось бы выделить место для &int
... и это кажется ненужным для такой простой операции.
Вы уверены, что инициализированы 'node-> data'? –
@BlagovestBuyukliev Я уверен, что это не так. – weston
Вы забываете выделить память 'node-> data'. i.e: 'node-> data = malloc (sizeof (int));' – whoan