输出一个3D数组的c++代码
output of a 3D array in C++ code
我正在写c++代码,有一个关于3d数组的问题:
double ***excit_pn;
excit_pn = new double **[num_y];
for (int i = 0; i < num_y; i++)
{
excit_pn[i] = new double *[num_x];
for (int j = 0; j < t.size(); j++)
{
excit_pn[i][j] = new double[num_y];
for (int k = 0; k < num_y; k++)
{
excit_pn[i][j][k] = 0;
}
}
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
for (int k = 0; k < 5; k++)
{
cout << excit_pn[i][j][k];
}
cout << endl;
}
cout << endl;
}
上面的代码是我的代码的一部分。我想测试数组excit_pn的值。当我运行代码时,运行结果都是4.26329e-312,而不是0。但是当我加上
cout<<excit_pn[i][j][k];
行后:
excit_pn[i][j][k] = 0;
,运行结果为0。
我的第二个问题是:for (int i = (num_y - num_el / 2); i < (num_y - num_el / 2)+num_el; i++)
{
for (int j = 0; j < ts.size(); j++)
{
for (int k = (num_x - num_el / 2); k < (num_x - num_el / 2)+num_el; k++)
{
excit_pn[i][j][k] = excit_ptn[i - (num_y - num_el / 2)][j][k - (num_y - num_el / 2)];
}
}
}
这部分有一个错误:0xC0000005: Access violation reading location 0xffffffffffffffffff。上面已经定义了Excit_ptn:
ts_n = new double **[num_el]; //number of elements is num_x while the nonzero element is num_el
ye_n = new double **[num_el];
excit_ptn = new double **[num_el];
for (int i = 0; i < num_el; i++)
{
ts_n[i] = new double *[ts.size()];
ye_n[i] = new double *[ts.size()];
excit_ptn[i] = new double *[ts.size()];
for (int j = 0; j < ts.size(); j++)
{
ts_n[i][j] = new double[num_el];
ye_n[i][j] = new double[num_el];
excit_ptn[i][j] = new double[num_el];
for (int k = 0; k < num_el; k++)
{
ts_n[i][j][k] = ts[j] + con_delay[i][k];
ye_n[i][j][k] = exp(-ts_n[i][j][k] * ts_n[i][j][k] / (2 * tv));
excit_ptn[i][j][k] = p0* ye_n[i][j][k] * cos(2 * PI*fc*ts_n[i][j][k]);
}
}
}
thanks a lot
在中间循环分配中,t.size()的循环结束:
for (int j = 0; j < t.size(); j++)
但是你使用变量num_x分配。
excit_pn[i] = new double *[num_x];
这两个量应该相等。
在您的打印循环中,您再次使用不同的尺寸。为了更安全,在调试时应该尽量在所有地方使用相同的维度,尤其是
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '