|
안녕하세요... Moony입니다...
buf를 초기화 시켜보시죠... 널값으로 말이죠...
fread( buf , strlen(buf)+1 , 1 , of );
에서 buf가 가르키는 포인터가 메모리의 특정부분인데 초기화가 되어있지 않아서
에러일 겁니다...
지금 제가 휴가중이라 (^^;)Y 돌려보질 않고 말씀드리는 건데
어쨋든 참고하시길...
참참....
메모리 할당도 해주시구요...
메모리 할당을 해주지 않으면 다른 메모리 영역을 침범할 수 있다는 건
아시겠죠...
수야 님이 쓰신 글 :
: 안녕하세요
:
: 허접질의 대명사 수야랍니다. ㅡㅡv
:
: fopen에 관한 질문인데요
:
: 일기전용 바이너리 파일로 오픈을 할려고 하는데 ab, a+b, rb, r+b, b 등 여러형식으로 해봤지만
:
: 오픈 에러가 납니다.
:
: rb는 오픈에러는 안나지만 fread때 CC3어쩌구저쩌구.DLL 이 어쩌구하는 멧시지가 뜹니다
:
: 소스 올릴테니까 이유점 알려주세요..
:
: 파일을 읽어서 *buf단위로 s.mp3라는 파일로 저장하는 것인데요..
:
: fopen같은 f시리즈로 무리가 있다면 open같은 다른 방법좀 부탁드립니다.
:
: stdio.h / string.h include했구요
:
: 아래는 소스입니다.
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: if(OpenDialog1->Execute())
: {
: FILE *of, *sf;
: char *buf;
: long length, i;
: int ld, wd;
: char *Fn;
:
: ld = 0;
: wd = 0;
: i = 0;
:
: Fn = OpenDialog1->FileName.c_str();
:
: if((of = fopen(Fn, "rt")) == NULL)
: {
: ShowMessage("Error Open LoadFile..");
: return;
: }
:
: if((sf = fopen("c:\\S.mp3", "wb")) == NULL)
: {
: ShowMessage("Error Open SaveFile..");
: return;
: }
:
: fseek(of, 0, SEEK_END);
: length = ftell(of);
: fseek(of, 0, SEEK_SET);
:
: while(i <= length)
: {
: ld = fread(buf, strlen(buf)+1, 1, of);
: wd = fwrite(buf, strlen(buf)+1, 1, sf);
: i = i = ld;
: }
:
: StatusBar1->SimpleText = "Complite";
:
: fclose(of);
: fclose(sf);
: }
: }
: //---------------------------------------------------------------------------
|