誰能告訴我爲什麼下面的代碼仍然有效?很明顯,在海峽[4]超出boundry的:c字符串仍然工作時出界?
#include<stdio.h>
int main(){
char str[3];
scanf("%s", str);
printf("%c\n", str[4]);
printf("%s\n", str);
return 0;
}
在運行時,輸入abcdefg
,它將呼應第五焦炭,整個字符串,沒有什麼 將是錯誤的,不可思議?
已經聲明c/C++沒有進行邊界檢查,而在上面的情況下, 我該如何使用printf打印用戶輸入的c字符串?或者更一般地說,如何正確使用來自用戶的C字符串?
你運氣不好 – 2013-03-02 16:49:16
因爲它是'c' – Anirudha 2013-03-02 16:53:13