본문 바로가기
Study/지식 in 답변

지식인 답변

by 뿡뿡대마왕 2011. 9. 26.
반응형

질문:
 회원 관리 프로그램을 구현하는 중 검색기능을 구현하고 있는데 컴파일은 잘 되지만 실행해서 기능을 실행할시 디버깅 오류가 나서  질문을 드립니다.


Run-Time Check Failure #3 - The variable 'stu' is being used without being initialized.

답변:


//수정된 코드  'Student *stu' 변수를 전역으로 빼내기만 했어요^^

#include <stdio.h>

#include <stdlib.h>

#include <string.h>


typedef struct Student{

char  name[10];

int  age;

char  address[50];

int      grade;

int  student_number;

struct Student *nextStudent;

}Student;


Student *start = NULL;

Student *end = NULL;

Student *stu;

void insert()

{

/* Student *stu;*/    //<--이변수를 전역으로 :  인서트 함수와 서취함수에서 공유하기 위해

stu = (Student*) malloc(sizeof(Student));


printf("이름을 입력하세요 : ");

scanf("%s", (stu)->name);

printf("나이를 입력하세요 : ");

scanf("%d", &(stu)->age);

printf("주소을 입력하세요 : ");

scanf("%s", (stu)->address);

printf("학번을 입력하세요 : ");

scanf("%d", &(stu)->student_number);

printf("성적을 입력하세요 : ");

scanf("%d", &((stu)->grade));


if(start==NULL)

{

start = stu;

end = stu;

}

else{

end ->nextStudent=start;

end =stu;

}



printf("== 저장 된 내용입니다.==\n");

printf("이름 : %s\n", (stu)->name);

printf("나이 : %d\n", (stu)->age);

printf("주소 : %s\n", (stu)->address);

printf("학번 : %d\n", (stu)->student_number);

printf("학점 : %d\n", (stu)->grade);



}


void search()

{

      //Student *stu ;             // 이변수를 전역으로
 
     char check[10];

int c;

int i;

printf("검색하실 이름을 입력해 주세요");

scanf("%s",check);

for(i=0 ; i < 5 ; i++){

if (strcmp(check, stu[i].name) ==0 ){

c =1;


printf("\t%s\t%d\t%s\t%d\t%d\n" , stu[i].name , stu[i].age , stu[i].address , stu[i].student_number ,stu[i].grade );

}


else {   

printf("\t검색하지못하였습니다\n");

}

}

}





void modify()

{



}




int main()


{


char input[20];


system("cls");                                    //clear이 아니고 cls입니다.

printf("===========================\n");

printf("==학생 정보 관리 프로그램==\n");

printf("===========================\n");


while(1){


printf("CMD>");

scanf("%s", input);



if(!strcmp("insert", input))

{

insert();

}


else if(!strcmp("search", input))

{

search();}

else if(!strcmp("modify", input))

{

modify(); }

else if (!strcmp("exit", input))

printf("종료되었습니다");

exit(0);

}

else 

printf("다시 입력을 해주십시오"); }


}

return 0;

}

 

반응형

댓글