所有線路在此方案在這裏後崩潰程序:分段錯誤,執行的代碼
#include <stdio.h>
int main(void)
{
char ch = 'A';
char* ptr = &ch;
ptr[8] = 'B';
printf("ptr[8] = %c\n", ptr[8]);
*ptr = 'C';
printf("*ptr = %c\n", *ptr);
}
輸出:
ptr[8] = B
*ptr = C
Segmentation fault (core dumped)
我認爲,該方案應在該行ptr[8] = 'B';
和崩潰段錯誤,但程序確實執行了所有的代碼行,然後崩潰了,這是我真的沒有得到的。
它不應該在行ptr[8] = 'B';
崩潰並停止執行嗎?
-2 !!這是爲什麼 ? –
不幸的是,每次編寫錯誤時,程序都不需要崩潰和刻錄。它可以假裝工作正常,並保存崩潰和燃燒直到另一天。例如,直到您運送了10000個單位之後... – Lundin