#include<stdio.h>
#include<conio.h>
struct Node{
int number;
struct Node * next;
};
struct Node * insertNodeInLinkedList(int number,struct Node * startOfList){
if(startOfList == NULL){
startOfList = (struct Node *)malloc(sizeof(struct Node));
startOfList->number = number;
startOfList->next = NULL;
}else{
struct Node * temporaryNode = startOfList;
struct Node * newNode = (struct Node *)malloc(sizeof(struct Node));
while(temporaryNode->next != NULL){
temporaryNode = temporaryNode->next;
}
newNode->number = number;
newNode->next = NULL;
temporaryNode->next = newNode;
}
return startOfList;
}
void display(struct Node * startOfList){
struct Node * temporaryNode = startOfList;
while(temporaryNode != NULL){
printf("%d",temporaryNode->number);
temporaryNode = temporaryNode->next;
}
}
int main (void){
int howManyNodes = 0;
int counter = 0;
int enteredNumber = 0;
struct Node * startOfMyList = NULL;
printf("How many nodes do you want in your linked list?");
scanf("%d",&howManyNodes);
while(counter < howManyNodes){
printf("Enter number: ");
scanf("%d",&enteredNumber);
startOfMyList = insertNodeIntoLinkedList(enteredNumber,startOfMyList);
counter++;
}
display(startOfMyList);
getch();
return 0;
}
这是我插入和显示链表节点的简单程序。但是,行:
startOfList = (struct Node *)malloc(sizeof(struct Node));
被标记为错误。我不知道为什么。
这里出了什么问题?
答案 0 :(得分:1)
您的malloc
似乎是正确的。
对于您的新错误,只是因为在main
中您正在调用insertNodeIntoLinkedList
并且您之前定义了该函数:
insertNodeInLinkedList
// ^^
此外,您需要为malloc
功能添加<stdlib.h>
。