Question

#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;
}  

This is my simple program to insert and display nodes of a linked list. However, the line:

startOfList = (struct Node *)malloc(sizeof(struct Node));  

gets flagged as an error. I do not know why.

What is going wrong here ?

Was it helpful?

Solution

Your malloc seems to be correct.

For your new error it is simply because in main you are calling insertNodeIntoLinkedList and you define the function before:

insertNodeInLinkedList
//        ^^

Also, you need to include <stdlib.h> for the malloc function.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top