수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

연결리스트로 주소록 만들기

다연

2023.04.01

질문 제목 : 연결리스트로 주소록 만들기연결리스트로 주소록 만드는데 실행해서 데이터 입력하면 메모리 참조 오류라고 나오는데
도통 뭐가 어떻게 잘못됬는지 몰라서 질문드립니다.ㅠ

질문 내용 : 소스 코드 입니다.
#includestdio.h
#includestring.h
#includewindows.h
#includemalloc.h
#define maxlist 50
typedef struct data
{
char name[maxchar];
int tel;
char email[maxchar];
struct data* next;
} node;
typedef node* nptr;
typedef struct
{
int count;
nptr head;
}listtype;
listtype *list=null;
void insert(listtype *lptr, int position, char name2[], int tel2 ,char email2[]);
void delete1(listtype *lptr, int position);
void delete2(listtype *lptr, int n);
void init(listtype *lptr);
void show(listtype *lptr);
void show1(listtype *lptr, int n1);
int main()
{
char name1[maxchar], email1[maxchar];
int tel1, pos, s=0, n, n1;
void init(list);
while(1)
{
system(cls);
printf(1. 입력 2.삭제 3.삭제(by tel) 4.단일출력 5.전체출력\n);
scanf(%d,&s);
system(cls);
switch(s)
{
case 1:
printf(삽입위치를 입력하시오.\n);
scanf(%d, &pos);
printf(이름을 입력하시오.\n);
scanf(%s, &name1);
printf(전화번호를 입력하시오.\n);
scanf(%d,&tel1);
printf(이메일을 입력하시오.\n);
scanf(%s, &email1);
&ninsert(list ,pos, name1, tel1, email1);
break;
case 2:
printf(삭제할 위치를 입력 하시오.\n);
scanf(%d, &pos);
delete1(list, pos);
break;
case 3:
printf(삭제할 리스트의 전화번호를 입력하시오.\n);
scanf(%d, &n);
delete2(list, n);
break;
case 4:
printf(출력할 리스트의 위치를 입력하시오.\n);
scanf(%d,&n1);
show1(list,n1);
system(pause);
break;
case 5:
show(list);
system(pause);
break;
default:
printf(try again!);
break;
}
}
return 0;
}
void init(listtype *lptr)
{
lptr-count=0;
lptr-head=null;
}
void insert(listtype *lptr, int position, char name2[], int tel2 ,char email2[])
{
int i;
nptr p, temp;
if(lptr-count==20)
printf(list full);
else if((position(lptr-count+1))||(position1))
printf(position out of range);
else
{
p= (node *)malloc(sizeof(node));
strcpy(p-name,name2);
p-tel=tel2;
strcpy(p-email,email2);
if(position==1)
{
p-next=lptr-head;
lptr-head=p;
p-next=null;
}
else
{
temp = lptr-head;
for(i =1;i(position-1);i++)
temp=temp-next;
p-next=temp-next;
temp-next=p;
if(lptr-count+1==position)
p-next=null;
else
{
for(i =1;ilptr-count+1;i++)
{temp=temp-next;}
temp-next=null;
}
}
lptr-count+=1;
}
}
void delete1(listtype *lptr, int position)
{
int i;
nptr p, temp;
if (position (lptr-count)||(position1))
printf(position out of range);
else
{
if(position==1)
{
p= lptr-head;
lptr-head=lptr-head-next;
}
else
{
temp=lptr-head;
for(i=1;i=(position-1);i++)
temp=temp-next;
p =temp-next;
temp-next=p-next;
}
lptr-count--;
free (p);
}
}
void delete2(listtype *lptr, int n)
{
int i,ii;
nptr p, temp;
temp=lptr-head;
if(n==lptr-head-tel)
{
p= lptr-head;
lptr-head=lptr-head-next;
}
for(i=2;i=lptr-count;i++)
{
temp=temp-next;
if(n==temp-next-tel)
{
temp=lptr-head;
for(ii=1;ii=i;ii++)
temp=temp-next;
p =temp-next;
temp-next=p-next;
}
lptr-count--;
free(p);
}
}
void show(listtype *lptr)
{
int i;
nptr temp;
if(lptr-count==0)
printf(이름 : %s, 전화번호 : %d, 이메일 : %s \n,lptr-head-name, lptr-head-tel, lptr-head-email);
else
{
printf(이름 : %s, 전화번호 : %d, 이: %d, 이메일 : %s \n,lptr-head-name, lptr-head-tel, lptr-head-email);
temp=lptr-head;
for(i=1;ilptr-count;i++)
{
printf(이름 : %s, 전화번호 : %d, 이메일 : %s \n,temp-next-name, temp-next-tel, temp-next-email);
temp=temp-next;
}
}
}
void show1(listtype *lptr, int n1)
{
int i;
nptr temp;
if(n1==1)
printf(이름 : %s, 전화번호 : %d, 이메일 : %s \n,lptr-head-name, lptr-head-tel, lptr-head-email);
else
{
temp=lptr-head;
for(i=1;in1-1;i++)
{
temp=temp-next;
printf(이름 : %s, 전화번호 : %d, 이메일 : %s \n,temp-next-name, temp-next-tel, temp-next-email);
}
}
}

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2695626 피보나치수열 과제 때문에 질문 드립니다. (6) 옆집언니 2025-05-22
2695595 포인트공부중입니다 int형에서 4=1 인가요? (3) 족장 2025-05-22
2695567 드라이브 고유번호를 가져오는 함수 (2) 초코맛사탕 2025-05-21
2695533 음수의 산술변환! 질문이요 ㅠㅠ... (4) 꽃여름 2025-05-21
2695506 구조체 배열 이용 도서목록 출력 프로그램 (1) 가을귀 2025-05-21
2695450 c언어 함수 질문이요.... 이슬비 2025-05-20
2695403 VirtualAlloc함수 및 메모리 질문 크리에이터 2025-05-20
2695355 c언어 for함수 미쿡 2025-05-19
2695327 안녕하세요 제가 이번에 좀 큰 프로그램을.. 악당 2025-05-19
2695295 mutex동기화의 thread기반 채팅 서버소스 질문입니다 그루터기 2025-05-19
2695270 질문이요..swap 관한겁니다..ㅠㅠ (3) 콩알녀 2025-05-19
2695244 노땅초보궁금한게 하나 있는데요..반복문(while문)초보자질문 (6) 큰꽃늘 2025-05-18
2695166 do while 문 어떤것이잘못된건지 모르겠어요 (2) 아이폰 2025-05-18
2695122 구조체에 대해 물어보고 싶은게 있습니다 ^^^.. (7) 수련 2025-05-17
2695091 txt 파일 입출력 후 2차 배열에 저장하기입니다. (3) 헛장사 2025-05-17
2695063 수도요금 프로그램좀 짜주세요. 시내 2025-05-17
2695033 답변좀요ㅠㅠ (1) 비사벌 2025-05-16
2695010 C++의 STL은 왜 굳이 템플릿화 시켜서 라이브러리를 만드나요? (초보수준의 질문..) (2) 엘보어 2025-05-16
2694958 로직이 변한다는 것에 대해서 궁금합니다. 튼동 2025-05-16
2694929 열혈강의 25-2 두번째 문제 질문 지우개 2025-05-15
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com