단순연결리스트 삽입부분좀 봐주세요
훌걸이
질문 제목 : 단순연결리스트 삽입부분..질문 요약 :
#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 이라고 하셔서 그런듯 하네요.
전역으로 설정하시면 될거같아요
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2673602 | 비트연산 연습하다 문제생겨서 올립니다. (2) | 연하얀 | 2024-11-01 |
2673576 | 질문이요...ㅠ | 미즈 | 2024-10-31 |
2673497 | 입력받아 출력하는 거 질문이요 (6) | 한누리 | 2024-10-31 |
2673438 | 배열로 입력받는것 질문 드릴게요 (3) | 들빛 | 2024-10-30 |
2673410 | 초기값 변환값 도와주세요 | 희1미햬 | 2024-10-30 |
2673384 | 저기 문자열 비교를 하려 하는데.. | Sonya | 2024-10-30 |
2673333 | 한글 영어 구분 (3) | 찬놀 | 2024-10-29 |
2673306 | 컴파일 시키면 한글이 깨집니다. (1) | 해지개 | 2024-10-29 |
2673278 | c언어 문자열 거꾸로 출력질문 | 물고기자리 | 2024-10-29 |
2673255 | 재귀함수 팩토리얼 | 사랑 | 2024-10-28 |
2673232 | 쉬운건데요.. (3) | 유우 | 2024-10-28 |
2673209 | 잘못된 자료형을 가르키는 포인터변수에 대한 질문 (5) | 해비치 | 2024-10-28 |
2673182 | 구조체에 대해서 질문 드립니다. (1) | 분홍이 | 2024-10-28 |
2673129 | C언어 포인터 부분 질문좀 부탁드립니다. (4) | 호습다 | 2024-10-27 |
2673105 | Atomic fetch sub | 등대 | 2024-10-27 |
2673014 | 소수합구하기 알고리즘이요. (1) | 크나 | 2024-10-26 |
2672987 | 어디가 틀렸는지 지적좀 해주세여... | 미련곰팅이 | 2024-10-26 |
2672934 | 숫자를 입력해서 지폐의 종류별로 갯수구하는 프로그램인데요.. | 개굴츼 | 2024-10-25 |
2672908 | 파일 오픈 출력 | 겨슬 | 2024-10-25 |
2672855 | 연결리스트를 이용한 관리 프로그램 중 리스트삭제 | 해비치 | 2024-10-25 |