【发布时间】:2013-12-06 17:40:10
【问题描述】:
我在一个名为“xxx.h”的文件中定义了一个结构:
struct struct_name
{
declarations;
};
我在另一个 c++ 文件 yyy.cpp 中包含了这个头文件 - 'xxx.h'
然后我尝试使用 new 关键字创建上述结构的二维数组,如下所示(我通过此链接学习了如何创建二维结构数组:Declaring a 2D array of type struct in c++)。
struct struct_name * some_name;
some_name = new struct struct_name[x][y];
编译时出现以下错误:error: ‘y’ cannot appear in a constant-expression。这个错误特别指向数组的第二维。
此外,当我尝试使用以下值初始化这个二维结构数组时:
some_name[i][j].var_name = value;
我收到以下错误:
error: no match for ‘operator[]’ in ‘*(some_name + ((sizetype)(((unsigned int)i) * 12u)))[j]’
请告诉我如何解决这个问题。
谢谢。
【问题讨论】:
标签: c++ structure multidimensional-array