Предупреждения при приведении к аннулированию **
Я пытаюсь привести структурный указатель к void**
для функции, которая принимает void**
;
typedef struct {
uint64_t key; // the key in the key/value pair
void *value; // the value in the key/value pair
} HTKeyValue, *HTKeyValuePtr;
HTKeyValuePtr payload = (HTKeyValuePtr)malloc(sizeof(HTKeyValue));
int success = (HTKeyValuePtr) LLIteratorGetPayload(i, (void**) &payload);
дает мне предупреждения:
hashtable.c:161:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
hashtable.c:161:19: warning: initialization makes integer from pointer without a cast [enabled by default]
В чем дело? Как это исправить?
извините, если это дублирование любого другого вопроса. Было много подобных вопросов, но я не мог найти тот, который соответствовал бы моей ситуации и который я понял.
1 ответ
Решение
int success = (HTKeyValuePtr) LLIteratorGetPayload(i, (void**) &payload);
Вы назначаете указатель на int...
Кроме того, Google говорит мне первый аргумент LLIteratorGetPayload
должен быть LLIter
, который оказывается typedef void*
, я догадываюсь i
является целым числом Вот причина первой ошибки.