-1
所以我正在學習C語言,我有Java和Python的經驗,這是一件非常奇怪的事情。數組越界但沒有錯誤?
當我運行該代碼時,輸出爲Hello7
#include <stdio.h>
int main()
{
int a[1];
a[1]=1;
a[2]=2;
a[3]=7;
printf("Hello%d",a[3]);
}
但如何是GCC能夠打印出Hello7如果陣列的最大尺寸爲1?
這是一個未定義的行爲(https://en.wikipedia.org/wiki/Undefined_behavior) – Jack
因爲在這種情況下語言不會陷入限制。這是未定義的行爲。如果因爲您訪問的數組超出其定義而碰巧工作 - 它可能不會在昨天工作。令人高興的是,目前在內存使用方面沒有明顯的衝突。 –
@Paulpro我不相信,你能否張貼你的結果截圖? –