我想知道为什么我的配置工作。我创建了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) –