- 论坛徽章:
- 0
|
我在修改一个程序,运行时提示段错误.然后用GDB调试:
Program received signal SIGSEGV, Segmentation fault.
0x08074333 in calc_mutex (initial_state=0x0) at mutex.c:675
675 temp = FT_FT_mutex[C.F[j]][m];
(gdb) print C.F[j]
$1 = 0
(gdb) print m
$2 = 0
(gdb) print FT_FT_mutex[0][0]
Cannot access memory at address 0xfbfebcc8
这个意思应该是不能访问FT_FT_mutex[0][0]的内存地址是吧.可是我在程序里头把temp = FT_FT_mutex[C.F[j]][m];改成temp =FT_FT_mutex[0][0];就不出错了.
我想问一下:temp = FT_FT_mutex[C.F[j]][m];(里头C.F[j]=0,m=0)和temp =FT_FT_mutex[0][0];有什么区别?为什么一个出错一个又不出错呢? |
|