了解malloc和指针增量与免费
这个问题在这里已经有了答案:
你在做什么是未定义的行为。
int *p = (int *) malloc(sizeof(int));
这从malloc
返回的地址开始分配sizeof(int)
字节。
当你这样做
*(p+1) = 41;
您正在取消引用未在堆中分配的内存位置。 它的地址是p + sizeof(int)
,它是一个不受管理的地址。
这产生了未定义的行为, 通过观察结果可以得出每个结论都是无关紧要的 。
链接地址: http://www.djcxy.com/p/80403.html上一篇: Understanding malloc and pointer incrementation with free