【发布时间】:2014-03-17 22:41:11
【问题描述】:
我有一个关于迷宫求解算法的作业,我使用路径树来解决它,这些是我的结构:
typedef struct node* nodePtr;
typedef struct root{
int coordX;
int coordY;
nodePtr child[4];
} root;
typedef struct node{
int coordX;
int coordY;
char val;
nodePtr child[3];
void* parent;
} node;
父指针既可以是指向根的指针,也可以是指向节点的指针,以便在树中没有循环。我在分配节点时检查了这个东西:
void assignNode(nodePtr *nodeAddr, int x, int y, char **maze, void *parent){
...some codes...
if(y != parent->coordY && x != parent->coordX)
这是我得到恼人的错误的地方
dereferencing 'void *' pointer
error: request for member 'coordY' in something not struct or union
error: request for member 'coordX' in something not struct or union
【问题讨论】:
-
将您的指针输入到它所指向的对象。在这种情况下,作为
node -
@brokenfoot 问题似乎可能是
node或root,至少这是我的猜测。 -
最安全的是拥有一个类型并成为第一个元素,或者一个包含根或节点的结构
标签: c pointers struct void-pointers