【发布时间】:2017-01-12 17:30:57
【问题描述】:
我想在 c++ 中为 3d 数组一一分配内存,就像..
typedef struct {
int id;int use;
}slotstruct;
slotstruct slot1[3][100][1500]; // This should be 3d array
for(i=0;i<3;i++){
for(j=0;j<100;j++){
for(k=0;k<1500;k++){
slot1[i][j][k] = (slotstruct *)calloc(1,sizeof(slotstruct));
}
}
}
我已经使用了这段代码,但是我遇到了分段错误..
【问题讨论】:
-
你对数组有错误的想法,但是,这段代码不会给你分段错误。此代码根本无法编译,即使包装在具有所有必需声明和包含的函数中也是如此。发布您的真实代码。
-
恐怕你所说的 C++ 实际上是 C。还有一些旧标准。
-
@Bob__ 这只是我项目的一小部分。我的整个项目都是用 c++ 编写的,所以通过这个小代码你将无法区分
-
@michalsrb 在我的项目中,每个光束有 3 个光束,有 100 个通道,每个通道有 1500 个插槽,所以在主要乐趣中我将调用此方法来分配内存..
-
您是否考虑过使用具有一维 std::vector 和自定义访问器的类?
标签: c++ segmentation-fault dynamic-allocation calloc