c++的一点小技巧
时间:2010-12-26 来源:一帆风顺 可能吗
刚刚要处理一个图像对比,创建了一个byte buffer[1400*900]的大数组,程序运行直接崩溃了。
后来找到了原因,byte buffer[1440*900]是分配在栈上的 ,栈是一个程序的静态数据空间,分配一个超大数组很容易导致栈溢出。
解决办法有两个:
1.增加栈大小,设置为2mb或跟大
2.动态分配内存,
2.if()出错
有时候为了省事直接写if((i++)>b){}
往往这种情况程序会错误地运行
改成这样
int temp=++i;
if(temp>b)
{}
还有for()也是一个道理,不要在循环的判断条件内使用i++,不然后果会很严重
相关阅读 更多 +