我有以下代碼:警告的指針賦值
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct node {
int data;
struct Node* next;
} Node;
typedef struct link_list {
Node* HEAD;
} LinkList;
void kill(const char* message) {
printf("ERROR: %s\n", message);
exit(-1);
}
LinkList* createList() {
LinkList* list = malloc(sizeof(LinkList));
list->HEAD = NULL;
return list;
}
Node* createNode() {
Node* node = malloc(sizeof(Node));
node->next = NULL;
node->data = 0;
return node;
}
void insert(LinkList* list, int data) {
if(list == NULL)
kill("Cannot insert. The given list is NULL.");
Node* node = createNode();
node->data = data;
if(list->HEAD == NULL) {
list->HEAD = node;
return;
}
Node* it = list->HEAD;
while(it->next != NULL) {
it = it->next;
}
it->next = node;
}
void display(LinkList* list) {
if(list == NULL)
kill("The given link list has not been initialized.");
Node* it = list->HEAD;
if(list->HEAD == NULL)
kill("The given link list is empty.");
while(1 == 1) {
printf("%d ", it->data);
it = it->next;
if(it == NULL)
break;
}
printf("\n");
}
void main() {
int numbers;
int data;
LinkList* list = createList();
printf("How many numbers?\n");
scanf("%d", &numbers);
for (int i = 0; i < numbers; ++i)
{
printf("Insert data of element %d: ", i + 1);
scanf("%d", &data);
insert(list, data);
}
display(list);
}
而且我得到以下警告:
從我的理解,似乎有與分配問題價值指針。但就我看來,LHS和RHS類型似乎是一樣的! (Node*)
。
是否與next
定義爲struct Node* next
這一事實有關並且我將它分配給的值是Node*
?
使用'結構節點*未來;','不是結構節點*未來;'你的'結構node' – Retr0id
定義有完全相同的問題幾天前....相同的錯誤,相同的命名... – alk
您可以從您的控制檯複製和粘貼文本。 – molbdnilo