【发布时间】:2011-12-12 12:05:36
【问题描述】:
有一个加载文件的功能:
int loadfile(char *fn)
{
printf( "\n my path: '%s' \n", fn );
FILE *f = fopen( fn, "r");
printf( "got\n" );
...
return 1;
}
第一个文件在 main() newfile( argv[1] );,有效。第二个是通过弹性解析/读取第一个文件来获取,我相信与问题无关。
控制台:
path: 'file1.hot'
got
path: 'file2.hot'
Segmentation fault: 11
printf 能够打印 char *fn,但 fopen 出现分段错误。
接下来的情况是,我尝试将文件显式放入 loadfile 中并执行 fopen( "file2.hot", "r"); 并且可以正常工作。
我是用g++编译的,用c++用char *还是fopen有不同的处理方式?
编辑
抱歉,没有newfile( argv[1] );。正确:loadfile( argv[1] );。
【问题讨论】:
-
对于segfault的错误,你可能要给出完整的程序,而不是单个函数。错误通常不在弹出段错误的位置。
-
发现问题有进展吗?您是否尝试过任何建议的解决方案?