我想要一个1整数内存,但是这个程序如何工作呢?
Code:
#include<iostream>
using namespace std;
int main(){
int* k=new int[1];
for(int i=0;i<5;i++)
cin>>k[i];
for(int i=0;i<5;i++)
cout<<k[i]<<"\n";
delete[] k;
return 0;
}
Input:
999999
999998
999997
999996
999995
Output:
999999
999998
999997
999996
999995
您通过访问未分配的内存来调用未定义的行为。这纯粹是“偶然”的。从字面上看,程序的每一个行为都是合法的,包括订购披萨的程序,......
这可能在大多数情况下都有效,因为你的操作系统通常不仅会给你 4 字节或类似的东西,还会给你一整页内存(通常是 4kB),但要强调这一点:你永远不能依赖这种行为!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)