我正在制作一个C程序,它需要访问结构中的结构数组。无法访问结构数组中的成员变量结构
定义看起来像下面
在主函数struct def_world
{
bool lock;
char tilemap;
def_tile tile[100][100];
struct def_tile
{
bool lock;
char kind;
def_obj * obj;
void * evt;
};
struct def_obj
{
bool lock;
int indexOfTable;
bool frozen;
char x,y;
char kind;
char face;
char * msg;
char * ip;
};
,我想访问世界tile[3][3]
的OBJ的脸。
我初始化世界
def_world world={0,};
但以下行犯错误
world.tile[3][3].obj=newobj();//newobj() returns def_obj type
world.tile[3][3].obj->face;
任何想法如何访问OBJ的脸?
至少要显示'newobj()'的声明,知道它是否返回一个'def_obj'对象或一个'def_obj *'指向'def_obj'的指针是很重要的。实际上,为什么不发布一个能够产生错误的可编辑示例 - 它不应该比现在更多,但它不需要人们猜测拼写错误(请使用copy-n-paste - 不要在SO编辑框中重新输入)。 –
使用VS2010对我来说很好(并且颠倒了结构的声明顺序)。另外,这是C++不是C,C中没有'bool'。也许'newobj'被定义为'def_obj newobj()'而不是'def_obj * newobj()'? – Skizz
的事情是,我的VS2010说,当我刚刚完成键入world.tile [3] [3]有什么错误吗? –