我有一个包含两个指针的结构,
两个指针都指向另一个结构 - 节点。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..这是为什么呢?
最佳答案
您的第二张图片表明指针分配已经发生,突出显示了对 map->iterator
成员的更改。我想象该方法运行完成,返回指针 0x9918f0
。
这让我相信您实际上并没有遇到指针分配失败,而只是调试器 (Eclipse) 显示更新值失败。这可能是由于 Eclipse 中的错误,也可能是由于 Eclipse 可用的调试信息不足。仅举个例子很难说。
关于c - 调试时指针分配不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232866/