#include <stdlib.h>
#include <stdio.h>

#include "Extern.h"
#include "Structs.h"

int main(void)
{
    Info *phones;
    int InfoNumber = 0;
    int SelectMenu = 0;

    phones = (Info *)malloc(sizeof(Info));
    phones[InfoNumber].aName[0] = NULL;

    while(1) {
        puts("*****전화번호부*****");
        puts("1. 입력");
        puts("2. 삭제");
        puts("3. 검색");
        puts("4. 전체 출력");
        puts("5. 종료하기");

        printf("선택하십시오 : ");

        scanf("%d", &SelectMenu);
        fflush(stdin); /////////////////////////////////////////////////

        switch(SelectMenu) {
        case 1:
            InsertNumber(phones, &InfoNumber);
            break;
        case 2:
            DeleteNumber(phones, InfoNumber);
            break;
        case 3:
            SearchName(phones, InfoNumber);
            break;
        case 4:
            PrintInfo(phones, InfoNumber);
            break;
        case 5:
            puts("종료");
            free(phones);
            return;
        } //end switch
    } //end while

    free(phones);
    puts("함수 main이 정상적으로 종료되지 않았습니다.");
    return;
}

이거 메인.




void InsertNumber(Info phones[], int *InfoNumber) // , InfoNumber = 0단위
{
    int i = 0;

    printf("0:0   %d", phones[0].aName[0]);

    for(i = 0; i <= *InfoNumber; i++) {
        if(phones[i].aName[0] == NULL) { //빈 파일에만 적용됨
            puts("[입력]");

            printf("이름 : ");
            gets(phones[i].aName);

            printf("전화번호 : ");
            gets(phones[i].aNumber);

            printf("\n");

            //배열을 전부 다 채웠다면
            if(i == *InfoNumber) {
                (*InfoNumber)++;
                phones = (Info *)realloc(phones, *InfoNumber + 1);
                phones[*InfoNumber].aName[0] = NULL;
            } //end inner if

            return;
        } //end outer if
    } //end for

    puts("ERR\n입력이 정상적으로 진행되지 않았습니다.");
}

이건 입력부분.

VS 2010으로 컴파일했을때, 한글이 깨져서 배열에 등록됨.

    for(i = 0; i <= *InfoNumber; i++) {
        if(phones[i].aName[0] == NULL) { //빈 파일에만 적용됨

 이부분은 다른분들은 전화번호부 목록에서 제거를 어떻게 구현하시는지는 모르겠는데,

나는 지울 구조체 이름 배열의 첫 자리에다가 NULL문자를 넣어놔서 빈 구조체/ 있는 구조체를 구별해


또 이상한게 첫번째 한글만 이상하게 등록되어

메인부분에 뭔가 잘못한게 있는거 아닌가 해서 메인부분도 올려봄


파일 전체를 첨부할라그랬는데 확장자때문에 안되네... 도와줘 횽드류ㅠㅠㅠ