我想知道爲什麼我的配置工作。我創建了ptr
這是一個指針,並且ptr2
指向與ptr
相同的位置。malloc觸摸未分配的內存
這裏是我的代碼:
int* ptr = malloc(sizeof(int));
int* ptr2 = ptr;
*ptr2 = 1;
ptr2 = ptr+1;
*ptr2 = 2;
在結束我有兩個整的像一個數組:
ptr[0] = 1
ptr[1] = 2
我的問題是:爲什麼我的價值2影響到ptr2
無錯誤或警告?我只有malloc()
-ed對於我的數組中的一個整數位置,不是嗎?
未定義的行爲是* undefined *。 – EOF
可能重複的[沒有越界錯誤](http://stackoverflow.com/questions/9137157/no-out-of-bounds-error) – EOF
[正在訪問一個全局數組超出其約束未定義的行爲? ](http://stackoverflow.com/questions/26426910/is-accessing-a-global-array-outside-its-bound-undefined-behavior) –