打印后分段错误

db2*_*791 0 c segmentation-fault

使用以下代码:

for (i=0;i<mem_size;i++){
    if (mem[i] == l_priority_num){
      printf("\nline1\n");
      printf("line2");
      return i;
    }
}
Run Code Online (Sandbox Code Playgroud)

在命令行上,“line1”被打印,但随后出现“分段错误”。这怎么可能?

Hen*_*ist 5

因为"line2"没有任何"\n"它可能不会被刷新,所以你只会看到"\nline1\n"即使printf("line2")很可能在段错误之前被调用。