0
#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));  

被标记为错误。我不知道为什么。

这里出了什么问题?

4

1 回答 1

1

你的malloc似乎是正确的。

对于您的新错误,这仅仅是因为main您正在调用insertNodeIntoLinkedList并且之前定义了该函数:

insertNodeInLinkedList
//        ^^

此外,您需要包含<stdlib.h>malloc功能。

于 2013-09-14T08:30:10.610 回答