머가 이상한건지;;;모르겟네요.
죄암죄암
질문 제목 : 질문 내용 :
단순이 오늘 입력 출력만 새로 하려고하는데;;
일단 코드는 이렇습니다.
#includestdio.h
#includestring.h
#includestdlib.h
#includeconio.h
typedef struct info{
char name[20];
char address[20];
int age;
struct info *pnext;
}info;
//typedef struct information info;
info head={0};
int input(int size);
void printdata();
void searchinfo(int size);
int main(){
int size=0,choose=0;
for(;;){
printf_s(------------\n);
printf_s(1.입력\n);
printf_s(2.추가\n);
printf_s(3.삭제\n);
printf_s(4.검색\n);
printf_s(5.출력\n);
printf_s(6.삭제\n);
printf_s(7.file로 만들기\n);
printf_s(8.종료\n);
printf_s(------------\n);
scanf_s(%d,&choose,sizeof(int));
switch(choose){
case 1: printf_s(몇 명의 정보를 입력하시겠습니까?\n); scanf_s(%d,&size,sizeof(int));
input(size); break;
case 2:
case 3:
case 4://searchinfo(seek,size);
case 5:printdata(); break;
case 6:
case 7:
;
}
if(choose==8) break;
}
free(input);
return 0;
}
int input(int size){
int i=0;
info *input=null;
input=(info*)malloc(sizeof(info)*size);
memset(input ,0, sizeof(info)*size);
printf_s(%d의 정보를 입력받겠습니다.\n,size);
for(i=0; isize; i++)
{
printf_s(%d의 이름 전화번호, 나이를 입력해주십시오\n,i+1);
scanf_s(%s %s %d,input-name,20,input-address,20,&(input-age),sizeof(int));
input-pnext=null;
input-pnext=head.pnext;
head.pnext=input;
}
printdata();
return 1;
}
void printdata(){
int i=0;
info *ptr=head.pnext;
while(ptr!=null){
printf(\n주소:%p\n%d의 이름:%s\t전화번호:%s\t나이:%d\t%p\n,ptr,i+1,ptr-name,ptr-address,ptr-age,ptr-pnext);
ptr=ptr-pnext;
}
getch();
}
이런데 2명이상 입력할시 무한루프로 빠지더라구요. ptr-다음이 무조건 자기 주소로 가지고있길래;;;
왜그런지;; 코드를 이리바꾸고 저리바꿔도;; 모르겠네요... 설명좀해주셨으면합니다...
-
카프리콘
어셈블리어가 실용성이 있다고 보진 않고요. 특수한 환경에서만 필요한거죠.
한꺼번에 입력하는 것과 한번에 하나씩 입력하는 것의 결정적인 차이는
메모리 할당(malloc) 방식의 차이입니다.
메모리를 크게만 잡는다고 값을 여러개를 넣을 수 있는게 아닙니다. ^^;;;; -
누리별
흠 컴퓨터구조보다는 실용성이깊은 어샘블러를 악혀야갯네요.
값들이 한번에 입력이안되는거인가봐요.... 따로분리해서 해봐야되겠어용.ㅠ -
안토니
어셈블리어를 익히는 이유는 C로는 접근이 어려운 부분에 대한 코딩을 위해서 입니다.
(주로 기계를 다루는 쪽이겠죠.)
코드상으로 입력을 하나씩 받는 것과 한꺼번에 받는 것은 실행되는데 결정적인 차이가 있습니다.
그것만 발견하시면 장족의 발전을 이루실듯. ^^ -
너만을
어셈블러는 배우면 코드작성할때 어디가좋은가요...ㅠㅠ
그럼 입력을씩받아야한다는뜻이신데....흠... -
새밝
디버깅을 하는 것이랑 어셈블리 하는 것과는 관계가 없습니다.
F10을 누르면, 문장을 한문장씩 실행해 볼 수도 있고,
실행하면서 값이 어떻게 변화하는지 확인할 수도 있습니다.
그것만으로도 충분하죠. ^^;;;
(이런건 디버깅 툴 사용하는 것을 직접 보여드리면 좋은데, 거리의 제약이 있으니...)
힌트를 드리자면, 한명을 입력하고, 다시 입력으로 들어가서 한명을 입력하면, 문제가 없을 겁니다.
문제는 입력시에 한번에 두명을 입력하면 문제가 생길겁니다.
-
진솔
두시간동안고민한거라...좀 쉬고 다시해봐야겟어요....ㅠㅠ 디버깅잘하려면 어셈블리좀할줄알아야겟죠 ..?이번에...컴퓨터규조재수강하려다가...어샘즐러로정햇는데...재수강을...
-
아이
디버깅이란게 경험이 쌓여야, 비로소 보이지 않던 부분이 보이게 되죠.
head와 input의 역할이 무엇인지 생각해 보시고,
그 두개가 어떻게 연결되는지를 살펴보세요.
(코드상에서 어떻게 들어갔는지 그림을 그려보셔도 좋고요.)
거기서부터가 문제 해결의 시작점이 아닌가 생각되네요. ^^ -
휑하니
대체왜그럴까요...ㅠ
-
티나
코드찾다가. 화가나가지고...하...분명히 맞게햇는데 왜. 널값을 못찾고 자기자신을 쫓고잇는지.... 디버깅해보면 값이 바뀨ㅣ긴하는데 덮어쓰는것같더라규요. 그래서 입력부분을 바꿧큰데도 무한으로 도네요...
-
튼튼
디버깅으로 한문장씩 실행해보면서 값을 따라가 보시면서, 디버깅을 해보세요.
구현하신 코드를 그림으로 그려보셔도 도움이 되고요.
차근차근 따라가다 보면 해결하실 수 있을거예요.
디버깅하면서 내공이 쌓이는 것이고... ^^
(현재 코드 상에서 입력이 문제라고 보시니, 데이터를 2개 넣는 과정만 디버깅 해보셔도 감이 오실거예요.)
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2693463 | 동적할당 이용시 fwrite사용을 어떻게 해야하나요..? (10) | 일본어못해요 | 2025-05-02 |
2693387 | 배열문제입니다 수정오류캡쳐했습니다 (6) | 연하얀 | 2025-05-01 |
2693356 | text 입출력 내림차순 질문입니다 ㅠ | 빛글 | 2025-05-01 |
2693328 | C언어를이용해서 .txt파일 외에 다른 확장자 파일 삭제가 가능한지.. (2) | 대나무 | 2025-05-01 |
2693299 | 파일입출력 바이너리파일 | 독특한 | 2025-04-30 |
2693273 | 오류 (1) | 귀1여운렩 | 2025-04-30 |
2693080 | visual studio 2008 express edition 등록키 말인데요 | 얀별 | 2025-04-28 |
2693053 | 배열, 구조체 관련 프로그래밍 질문드립니다. | 싸리 | 2025-04-28 |
2693025 | 프로그램을 짜봤는데요 ㅠㅠ | 상처입은마음 | 2025-04-28 |
2693001 | 워닝문제, 세그멘트결함문제 (1) | 월식 | 2025-04-28 |
2692979 | 라인한줄 이랑.. 소스 설명좀 부탁드려요.. | 이루리 | 2025-04-27 |
2692947 | 이 문제좀 풀어 주세요..ㅜㅜ (1) | 소리 | 2025-04-27 |
2692889 | 함수의 구조체 인자로 받아서 그 인자로 데이터 넣기... | 한뎃집 | 2025-04-27 |
2692862 | 성적 출력 하는 프로그램인데요~!!!도움좀 주세욤.ㅠ | 두빛나래 | 2025-04-26 |
2692831 | if 문 간단해요 빨리좀 ㅠㅠ | 이플 | 2025-04-26 |
2692805 | 실행파일이 이상해요 | 푸헷 | 2025-04-26 |
2692750 | 퀵정렬 질문이요 . | 동생몬 | 2025-04-25 |
2692700 | 이 소스코드에 문제 있나요?? (2) | 초코초코해 | 2025-04-25 |
2692596 | 오류좀 잡아주세요 | 하나 | 2025-04-24 |
2692510 | 함수형 중에서.. (6) | 한란 | 2025-04-23 |