自从我上次访问过数组以来,我一直在等待一段时间(因为我正在使用的库,我需要将二维向量转换回二维数组)例如,类型为double array
的参数,其中该阵列的访问器为foo[i][j]
。将二维向量转换为二维数组
这里是我的代码:
double** setupHMM(vector<vector<double> > &vals, int N, int M)
{
double** temp;
temp = new double[N][M];
for(unsigned i=0; (i < N); i++)
{
for(unsigned j=0; (j < M); j++)
{
temp[i][j] = vals[i][j];
}
}
}
有了这个,我得到error: ‘M’ cannot appear in a constant-expression
我也曾尝试以下操作:
double** setupHMM(vector<vector<double> > &vals, int N, int M)
{
double** temp;
for(unsigned i=0; (i < N); i++)
{
temp[i] = new double[N];
for(unsigned j=0; (j < M); j++)
{
temp[j] = new double[M];
temp[i][j] = vals[i][j];
}
}
}
然而,这会产生分段错误11。
任何人都可以提出任何建议,或者更好的方法来co nvert载体,以二维数组..
感谢
它什么时候创建段错误? – 2013-03-08 14:04:27