|
1:
一段从文件中读取数据的代码,文件由一串字符组成,没有换行:
char *data;
FILE *f;
f = fopen("a.dat", "r");
data = (char *)malloc(100); /*实际的程序中是由变量的值决定需要的空间*/
fread(data, sizeof(char), 100, f);
fclose(f);
用gdb看data的值时,有时会出现多出几个字符的现象,因为data在后面的使用中是作为字符数组来使用的,绝对访问不到data[0]--data[99]以外的值,所以程序运行起来看不出什么异常。但总是不明白为什么会这样呢?
2:编译好的程序,如果这样运行
./program
就没有问题,但如果在别的路径下,用绝对路径来运行,就会segametation fault,这是为何?
请高手不吝赐教,多谢! |
|