【发布时间】:2012-10-05 12:58:08
【问题描述】:
我的以下代码运行良好:
double weight [600] [800][3];
double mean [600] [800][3];
double sd [600] [800][3];
double u_diff [600] [800][3];
for ( int i = 0; i < 600; i ++ )
{
for ( int j = 0; j < 800; j ++ )
{
for ( int k=0; k < 3; m ++ )
{
weight [i][j][k] = 0;
mean[i][j][k] = 0;
sd[i][j][k] = 6;
}
}
}
但是当我把它改成这种形式时:
int init = 6;
int C = 3;
for ( int i = 0; i < 600; i ++ )
{
for ( int j = 0; j < 800; j ++ )
{
for ( int k =0; k < 3; k ++ )
{
weight [i][j][k] = 1/C;
mean[i][j][k] = rand();
sd[i][j][k] = init;
}
}
}
它崩溃了。我什至尝试分别为“weight”、“mean”和“sd”工作。我怀疑它可能是数据类型,更改为:
double value = rand();
weight[i][j][m] = value;
但错误仍然存在。这里有什么问题?
【问题讨论】:
-
平均[i][j][k] = rand();这看起来很可疑
-
更多上下文会有所帮助。你能生成一个完整的最小程序来演示这个错误吗?见sscce.org。
-
尝试更正循环定义中的所有临时变量。还尝试在赋值循环内设置断点。至少这将有助于找出导致程序崩溃的原因。
标签: c++ arrays visual-c++ for-loop set