안녕하세요..
허접이지만.. 도움이 될까해서 답변 드립니다.
main함수하고 case_function함수 안에 있는 두개의 string변수가
메모리 할당이 안되어서 나는 에러가 아닌가 싶네요..
두 함수 안에서 모두 new등을 해주시면 되지 않을까요?
char *string;
string = (char *)malloc(256); 또는 string = new char[256];
...
free(string); 또는 delete<>string;
을 추가해 보세요..
에궁..
: 파일에서 설정파일을 읽어오는 프로그램을 짜고 있습니다.
: 설정 파일 내용이..
: ---------conf----------------
: #####my project#######
:
: DENY_ALL_HOST 234.212.215.89
: 등등..
: ---------------------------
: 이렇게 되어있습니다.
:
: 이제 소스를 보여드리께염
: void case_function(FILE * fpt)
: {
: char *string;
:
: fgets(string,256,fpt);
: printf("%s",string);
: }
:
: void main()
: {
: FILE * fpt;
: char teststring;
: char *string;
: char oneargv[20];
: char twoargv[20];
: int count=0;
:
: fpt=fopen("./myproject/firewal.conf","r");
:
:
: while ((teststring=fgetc(fpt))!=EOF)
: {
:
: fseek(fpt,-1L,SEEK_CUR);
:
: if((teststring =='#') || (teststring ==' ') || (teststring == 10 ) ) //13 is CR() , 10 is LF( ). ASCII code!!
:
: {
: fgets(string,256,fpt);
: printf("%s",string);
: }
: else
: {
: case_function(fpt);
: /*
: fgets(string,256,fpt);주목^^부분
: printf("%s",string);
: */
: }
:
: }
:
: fclose(fpt);
:
: }
:
: 원래는 좀더 긴데 제가 거의 주석처리 해보고 에러나는 부분만
: 올립니다.
: 문제가 뭐냐하면 위에처럼 case_function이라는 함수를 부를때는
: 프로그램이 실행되고 fclose(fpt)부분에 가서
: 세그멘테이션 오류라고 하면서 프로그램이 끝나버립니다.
: 하지만 위에 주목^^부분 이라는 주석부분을 주석제거하고
: 그 윗줄에 case_function(fpt)부분에 주석을 주면 (즉 case_function을
: 안 쓰면^^;)
: 그 문제의 세그멘테이션 오류가 안뜹니다..
: ㅜㅜ 아무리 생각해도 모르겠네요..왜 이러는지 로직상 두개 같은것같은데
: 부디 구원의 손길을 주옵소서..
:
: 좋은 하루되세요^^
:
: --
: 아..갈수록 태산이다 ㅡㅜ--빡/센/여/름/을/보/내/장