// 프로그램 실행시 입력 횟수 받기 (5를 입력 받았다면)

//입력 5번 받기

// 첫번째 숫자가 start

// 두번째 숫자가 start.nextnode

// 세번째 숫자가 start.nextnode->nextnode ...

// 이렇게 하지말고 반복문을 사용해서 프로그램 입력횟수를 넣기


#include<stdio.h>

#include<stdlib.h>




struct node // 연결 리스트의 구조체 정의

{

int value = 0; //입력받은 숫자를 저장

struct node* nextnode = NULL; // 다음 노드의 주소를 저장할 포인터

};





int main(void)

{

node* start = (node*)malloc(sizeof(node));


int choice;

int arr[20];


printf("입력하실 횟수를 입력해주세요. : \n");

scanf_s("%d", &choice);



for (int i = 0; i < choice; i++)

{


printf("%d번째 저장할 숫자를 입력해주세요. : \n", i + 1);

scanf_s("%d", &arr[i]);

}


start->value = arr[0];


for (int i = 1; i < choice; i++)

{

start->nextnode = (node*)malloc(sizeof(node)); // nextnode에 리스트 구조체 주소 추가

start->nextnode->value = arr[i]; // value에 arr[i]부터 순서대로 저장

}









printf("\n%d\n", start->value);

printf("%d\n", start->nextnode->value);

printf("%d\n", start->nextnode->nextnode->value);

printf("%d\n", start->nextnode->nextnode->nextnode->value);

printf("%d\n", start->nextnode->nextnode->nextnode->nextnode->value);

}


실행결과


printf("%d\n", start->nextnode->nextnode->value);

printf("%d\n", start->nextnode->nextnode->nextnode->value);

printf("%d\n", start->nextnode->nextnode->nextnode->nextnode->value);

디버그해보면 이부분에 메모리 값이 없다고 뜨네..