查看文章 |
动态内存申请
2009-03-01 11:39
//但是用户可以进入一个太大的值,编译系统不能处理它。举例来说,当试图给一个价值1亿多的“数据”的问题,系统不能分配多少内存,我们准备这个案例(错误:不能被分配的内存,总是检查是否一个动态分配内存块是成功的。因此,如果你使用nothrow方法,你都应该随时检查值的指针返回。否则,使用例外的方法,即使你不处理例外。这样,这个项目将终止在这一点上没有造成的意外收获的继续执行代码,即内存块已经分配时,实际上它并不是。 #include<iostream> #include<new> using namespace std; int main() { int i,n; int *p; cout<<"how many number would you like to type?"; cin>>i; p=new(nothrow) int [i]; if(p==0) cout<<"error:memory could not be allocated"; else { for(n=0;n<i;n++) { cout<<"enter number:"; cin>>p[n]; } cout<<"you have entered:"; for(n=0;n<i;n++) cout<<p[n]<<","; delete[] p; } return 0; } |
最近读者: