【发布时间】:2012-04-19 16:47:32
【问题描述】:
我有一个包含两个指针的结构,
两个指针都指向另一个结构——节点。typedef struct Map_t {
Node head;
Node iterator;
} Map_t;
typedef struct Node_t* Node;
struct Node_t {
MapDataElement Data;
MapKeyElement Key;
struct Node_t *next;
};
typedef struct Map_t *Map;
我想让 iterator 指针指向与 head 相同的位置。继承人在运行该行之前和之后的调试:
行前
行后
如您所见,运行该行后,map->iterator 仍然指向 0x0.. 这是为什么呢?
【问题讨论】:
-
会不会和编译器优化有关?当您在没有优化的情况下构建时会发生这种情况吗?是否会在后续步骤之后进行更新?
-
它似乎不指向
NULL(由其他值变化证明),但Eclipse 仍将其显示为NULL。 Eclipse 错误?
标签: c pointers null-pointer