这段 C 代码在 gdb 中给出了分割错误
if ((seq_entry_action=malloc((seq_subphases)*sizeof(int*)))==NULL){
printf("Cannot allocate memory for seq_entry_actionn");
}
哪里:
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处出现段错误
我真的不明白.....
确实是这样...早期错误计算的 sizeof() 的 malloc 是这个 malloc 失败的原因。