malloc中的sigsegv错误让我疯了

时间:2012-08-08 19:34:43

标签: c gdb segmentation-fault malloc

这段C代码在gdb中给出了分段错误

if ((seq_entry_action=malloc((seq_subphases)*sizeof(int*)))==NULL){
    printf("Cannot allocate memory for seq_entry_action\n");
}

其中:

int **seq_entry_action=NULL;
unsigned int seq_subphases=0;

在执行时,如果我在这段代码之前在gdb中添加一个断点(它只是另一个printf()语句),则值为

(gdb) p seq_subphases
$3 = 88
(gdb) p seq_entry_action
$4 = (int **) 0x0

然后我按下接下来并在malloc

进行段错误

我真的不明白.....

1 个答案:

答案 0 :(得分:1)

确实如此......早期的错误计算sizeof()的malloc就是这个malloc失败的原因。