단순연결리스트 삽입부분좀 봐주세요
훌걸이
질문 제목 : 단순연결리스트 삽입부분..질문 요약 :
#include stdio.h
#include stdlib.h
struct node
{
int data;
struct node* link;
};
void turninput(struct node*);
int count=0;
int main()
{
struct node* l=null;
struct node* temp;
int button,number,i;
do
{
printf((1)순차적입력 (2)선택적입력\n);
scanf(%d,&button);
switch(button)
{
case 1:
turninput(l);
break;
}while(button!=3);printf(이제 단순연결리스트를 출력하겠습니다\n); //버튼 3 입력시 빠져나오면서 출력시작
temp=l;
while(temp!=null)
{
printf(%d ,temp-data);
temp=temp-link;
}
return 0;
}void turninput(struct node* l)//순차적삽입(0이 들어올때까지 계속입력받음)함수정의
{
struct node* newnode;
struct node* temp;
while(1)
if(l==null) //첫번째 원소 넣을때
{
printf(%d번째 원소를 입력합니다\n,count+1);
newnode=(struct node*)malloc(sizeof(struct node));
printf(원소를 입력하세요:);
scanf(%d,&newnode-data);
if(newnode-data==0) //0이면 빠져나감
break;
l=newnode;
l-link=null;
count++;
}
else //2번째 이상의 원소 넣을때
{
printf(%d번째 원소를 입력합니다\n,count+1);
temp=l;
while(temp-link!=null)
temp=temp-link;
newnode=(struct node*)malloc(sizeof(struct node));
printf(원소를 입력하세요:);
scanf(%d,&newnode-data);
if(newnode-data==0) //0이면 빠져나감
break;
newnode-link=null;
temp-link=newnode;
count++;
}
}질문 내용 :
l이 헤더고 맨 처음에 실행시공백리스트일때 순차적으로 삽입하는건데
함수를 안만들어서 했을땐 올바르게 되는데
함수를 만들어서 하니까 함수안에서는 잘 연결되고main으로 돌아가니까l이 초기화 되버리는데 왜이런거죠???
리턴값으로 l을 넘기면 또 올바르게 되는데 그러면 struct node*를 넘긴의미가 없잖아요...
모르겟어요ㅠㅠ
도와주세요 잘못한게 없는것같은데 너무 답답하네요ㅠ
-
흰가람 2024-04-09
와!!오호 감사해요ㅠㅠ와 진짜 계속고민햇는대다행이네요ㅠㅠㅠ
-
또야 2024-04-09
TurnInput() 안에 있는 input parameter 를 모두 뺴고 하니까 잘 되네요.
1. struct node * L=NULL 을 전역으로 설정
2. void TurnInput() ;으로 변경 - L이 재정의 되면서 NULL로 바뀌는것 같네요 -
꽃겨울 2024-04-09
흠 그래도안되요ㅠㅠ
-
머슴밥 2024-04-09
L이 초기화 되는건 main 안에서 struct Node * L = NULL 이라고 하셔서 그런듯 하네요.
전역으로 설정하시면 될거같아요
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2658021 | #define 문 정말 간단한 질문있습니다. | 심플포텐 | 2024-06-12 |
2657962 | IPv6에서 RAS 사용요 | 상1큼한렩 | 2024-06-11 |
2657935 | 도와주세요 배열및 함수관련. (4) | 하루키 | 2024-06-11 |
2657885 | 두개의 소문자입력뒤 비트연산자로 대문자오바꾸기 | 풀잎 | 2024-06-11 |
2657830 | 경우의 수 구하기.. (1) | 흰우유 | 2024-06-10 |
2657806 | 연산자 질문요 (1) | 네코 | 2024-06-10 |
2657782 | 콘솔창 꽉채우기 | 미쁘다 | 2024-06-10 |
2657754 | 유니코드 기반으로 문자 입출력받는데 안됩니다 | 어리버리 | 2024-06-09 |
2657728 | 포인터 배열도 동적할당(malloc)를 통해서 생성이 가능한가요? | 우미 | 2024-06-09 |
2657700 | 오류 해석을 못하겠어요. | 해길 | 2024-06-09 |
2657642 | 출력부분에서.. | 앨버트 | 2024-06-08 |
2657620 | 파일 입출력 함수 반복문 .. | 서리서리 | 2024-06-08 |
2657594 | 인수의 존재 여부를 검사 (1) | 다이 | 2024-06-08 |
2657566 | 서비스팩을 설치하더니 잘되는데요.... | 감추어왔던 | 2024-06-08 |
2657538 | c 질문입니다 | 히나 | 2024-06-07 |
2657486 | while문 정의되지 않아서 발생하는 무한루프. (8) | 별솔 | 2024-06-07 |
2657461 | 파일복사질문드려요 | 이슬비 | 2024-06-07 |
2657433 | C 질문좀 할게요 ㅠㅠ | PinkPearl | 2024-06-06 |
2657402 | 시그널질문 ㅠㅠ | 주인님 | 2024-06-06 |
2657374 | 공백 제거 질문 | 연체리 | 2024-06-06 |