Итак, я пытаюсь написать обобщенную реализацию единого списка, которая работает со всеми типами, и продолжать сталкиваться с ошибкой: Assignment from incompatible pointer type
для строки кода, которая является следующим образом:Ошибка: присвоение несовместимого типа указателя в связанном списке
node->next = newNode;
Это в контексте следующих деклараций и структур:
typedef struct{
void* data; // The generic pointer to the data in the node.
Node* next; // A pointer to the next Node in the list.
} Node;
void insertAfter(Node* node, Node* newNode){
// We first want to reassign the target of node to newNode
newNode->next = node->next;
// Then assign the target of node to point to newNode
node->next = newNode;
}
Я пытался использовать оба так: node->next = *newNode;
и это: node->next = &newNode;
Но, как вы можете себе представить, что они делают не работаю, что я делаю ng неправильно здесь, что и почему возникает эта ошибка и как ее исправить?
Какой у вас компилятор? –
Выделенное структурированное определение не поддается компиляции. Вы не можете ссылаться на еще не определенный тип 'Node' внутри определения typedef-struct для типа' Node'. Это немедленно вызовет ошибку компиляции. Либо у вас есть другое определение для какого-либо другого типа «Node» где-то, либо код, который вы отправили, не является компилированным вами кодом. И если у вас действительно был другой тип «Node», объявленный где-то, вы обычно получаете ошибку компиляции для переопределения типа. Итак, я бы предположил, что код, который вы опубликовали, является неточным. – AnT