调试时指针分配不起作用

时间:2012-04-19 16:47:32

标签: c pointers null-pointer

我有一个包含两个指针的结构,< head,iterator>两个指针指向另一个结构 - 节点。

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 相同的位置。在跑完线之前和之后的负债:

行前 enter image description here

enter image description here

正如您所看到的,在运行该行之后,map->迭代器仍然指向0x0 ..为什么会这样?

1 个答案:

答案 0 :(得分:1)

看来指针分配已经发生,如第二张图片所示,它强调了对map->iterator成员的更改。我想象方法运行完成,返回指针0x9918f0

这让我相信你实际上并没有遇到指针赋值失败,而只是在调试器(Eclipse)中显示更新值的失败。这可能是由于Eclipse中的错误,或者可能是由于Eclipse可用的调试信息不​​足。仅用给出的例子很难说。