首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

栈溢出解决方案

2012-07-27 
栈溢出我写了一个求矩阵协方差的代码,但是报错栈溢出,这是为什么?在怎么修改呢?void mypca::cov(){for (un

栈溢出
我写了一个求矩阵协方差的代码,但是报错栈溢出,这是为什么?在怎么修改呢?
void mypca::cov()
{
for (unsigned int i=0;i<vec2[0].size();i++)
{
vector<double>ci;
for (unsigned int j=0;j<(vec2[0].size());j++)
{
double cij=0.0;
for(unsigned int k=0;k<vec2.size();k++)
{

cij+=(vec2[k][i]*vec2[k][j]);

}
ci.push_back(cij);

}
C2.push_back(ci);
}
}

[解决办法]
矩阵难道很大?

是在不行,就用new或者malloc做动态数内存分配吧
[解决办法]
据说 栈大小是2M 吗
[解决办法]

探讨

矩阵是256*1024的

[解决办法]
在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可。

[解决办法]
探讨

一开始时候,矩阵的定义是:vector<vector<float>> vec2;
如果用new方法的话,是不是改成这样子:vector<vector<float>> vec2=new vector<vector<float>> (256);

热点排行