C
메모리는 넉넉하게
은전
2022. 12. 6. 03:21
구조체 배열을 사용하여 주소록을 만드는 문제
이 문제 보고 이거 쉬울 것 같다고 생각하고 막 덤벼들었는데
1시간 걸렸어요 ㅎㅎ
#include <stdio.h>
#include <string.h>
typedef struct {
char name[16];
char phone[13]; //14로 고쳐야 했어~~~~~
} Book;
int main(){
Book book[20];
FILE *fp;
char fname[20], str[20];
int i = 0;
scanf("%s", fname);
fp = fopen(fname, "r");
while( fscanf(fp, "%s", book[i].name)!= EOF){
fscanf(fp, "%s", book[i].phone);
i++;
}
int p=0;
scanf("%s", str);
for(int j=0; j<i; j++){
if(strcmp(book[j].name, str) == 0){
printf("%s : %s", book[j].name, book[j].phone);
p = 0;
break;
}
else p = 1;
}
if( p == 1 ) printf("cannot find");
fclose(fp);
}
이렇게 짰는데 자꾸 채점 결과가
이런 거예요...
버퍼 문제인가 싶었는데
알고보니 맨 처음에 메모리 할당할 때 폰 번호가 13자리니까 char phone[13]; 이렇게 해버림...
히히
14로 고치니깐 바로 되더라고요
앞으로 저만의 규칙이 세워졌어요
디버깅할 때
1. 메모리 보기
필수...