0

私には機能があります。FA->file_temp は FA->file のコピーです。FA->file_temp は TEMP ディレクトリにあります。(C:\Users\User\AppData\Local\Temp)

stat(FA->file, &st_file);
filesize = st_file.st_size;
ffile = fopen(FA->file_temp, "rb");
if (ffile == NULL) perror("NULL!!!!!!!!!!!!!1\n");

strcpy(str, FA->file_dir);
strcat(str, "packed");
temp_name(str) ;
strcpy( FA->tmpname , str);
ftmpname = fopen(FA->tmpname, "wb");
if (ftmpname == NULL) perror("NULL!!!!!!!!!!!!!1\n");
 if (rc = encode(ffile, ftmpname, filesize)!=0) 
     longjmp(Berror, rc);
4

1 に答える 1

1

おそらく、あなたのプログラムは'NULL!!!!!!!!!!!!'以前に 叫んだことがありますassertion failedか? foアサーションに関するメッセージは、それが nullであると言っています。

私がここにいる間、

if (rc = encode(ffile, ftmpname, filesize)!=0) 

おそらくあなたが望むものではありません。これは のすべてを に格納encode(ffile, ftmpname, filesize)!=0rcます。あなたはおそらく次のことを意味していました:

if ((rc = encode(ffile, ftmpname, filesize))!=0) 
于 2012-04-08T05:04:26.953 に答える