注册 登录
编程论坛 C++教室

C++中的动态数组会自己增长吗,

未未来 发布于 2013-10-11 19:15, 437 次点击
程序代码:
#include<iostream>
#include<string>
#include<vector>
#include<sstream>
using namespace std;
int main(){
int *p=new int[5];
int x;
for(int i=0;i!=5;++i){
    cin>>x;
    p[i]=x;
}
p[5]=100;
for(int i=0;i!=6;++i){
    cout<<p[i]<<" ";
}

delete [] p;
return 0;

}

为什么这里没有出错,我不是只分配了5个空间,
3 回复
#2
peach54602013-10-12 06:50
你这里有内存泄漏
而且书上应该很明确的告诉你了,数组不自带范围检查...
#3
rjsp2013-10-12 08:20
为什么这里没有出错,我不是只分配了5个空间,
------ 因为C/C++标准没有规定这么做必须出错,C/C++标准只是规定这么做的一切后果它不负责
#4
toofunny2013-10-20 00:52
你在地上画了个圈,表示该地方是安全的。你自己跑出了圈子,有可能掉下悬崖,也有可能还是在地面。你这个程序是后者的情况
1