C++代码显示bad allocation

C++语言 码拜 8年前 (2016-05-17) 4071次浏览
vector<int> a;
for(int i=0;i<2^26;i++)
{
a.push_back(i);
}
最后代码崩溃,捕捉到异常为bad allocation,该怎么解决?
解决方案

20

话说你为什么要push_back那么多数进去,你要达到什么目的?

20

用文件读写模拟内存读写。
参考_lseeki64函数。

10

2^26 :
C不是VB 也不是matlab 这个运算符,不是幂运算
而是异或运算
另外 < 优先级比 ^ 优先级高,所以
i<2^26 ==> (i<2)^26
0<2 ==1 ; 1^26 ==27
1<2==1;
2,3,4,<2 ==0
0^26 == 26
所以即使反绕回来,这个循环也一直进行
这个就是个无穷循环
内存没有这么多啊,。无论有多少内存,都不够消耗的
所以bad allocation

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++代码显示bad allocation
喜欢 (0)
[1034331897@qq.com]
分享 (0)