struct PIXEL{
int pix;
int P_order;
int p_slice;
};
struct PIXEL pix[512][512][1000];
显然申请不下来,求方法解决三维数组分配空间不足的方法,希望解决后能正常进行三维数组的三层for循环赋值取值。
vc 如何解决三维数组空间分配不足?
答案:2 悬赏:0 手机版
解决时间 2021-02-10 17:51
- 提问者网友:無理詩人
- 2021-02-09 22:50
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-02-09 23:57
这个不至于吧?你如果真的希望要三维数组,可以尝试这样:
struct PIXEL *** pix = new struct PIXEL ** [512];
for(int i = 0; i < 512) {
pix[i] = new struct PIXEL * [512];
for(int j = 0; j < 512; i++)
pix[i][j] = new struct PIXEL [1000];
//next j
}//next i
这样就可以分散分配了,使用的时候用pix[i][j][k]即可
不过delete时候这样做:
for(int i = 0; i < 512) {
for(int j = 0; j < 512) delete [] pix[i][j];
delete [] pix[i];
}//next i
delete [] pix;
要不然内存可能会出麻烦
struct PIXEL *** pix = new struct PIXEL ** [512];
for(int i = 0; i < 512) {
pix[i] = new struct PIXEL * [512];
for(int j = 0; j < 512; i++)
pix[i][j] = new struct PIXEL [1000];
//next j
}//next i
这样就可以分散分配了,使用的时候用pix[i][j][k]即可
不过delete时候这样做:
for(int i = 0; i < 512) {
for(int j = 0; j < 512) delete [] pix[i][j];
delete [] pix[i];
}//next i
delete [] pix;
要不然内存可能会出麻烦
全部回答
- 1楼网友:你哪知我潦倒为你
- 2021-02-10 01:19
mxcreatenumericarray
第一个参数 赋值为 3
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯