2012-04-19 13 views
1

私は2つのポインタ<ヘッド、イテレータ>両方のポインタが別のstruct-Nodeを指している構造体を持っています。デバッグ中にポインタの割り当てが機能しない

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; 

私は頭と同じ位置にイテレータポインタポイントを作りたいです。あなたは、行を実行した後、MAP-を見ることができるようにライン enter image description here

ラインの前 enter image description here

:相続人Debbuging前とラインを走った後、 > iteratorはまだ0x0を指しています。なぜですか?

+0

コンパイラの最適化に関連していますか?最適化なしでビルドすると、これは起こりますか?更新は今後の手順の後に行われますか? – TJD

+2

他の値が変化していることからもわかるように、* NULL *を指していない*ように見えますが、Eclipseはまだそれを 'NULL'と表示しています。 Eclipseのバグ? – user7116

答えて

1

ポインタの割り当てが、map->iteratorのメンバーへの変更を強調する2番目の画像によって示されているようです。メソッドが完了して実行され、ポインタ0x9918f0を返すと思います。

これは、実際にポインタの割り当てに失敗しているのではなく、デバッガ(Eclipse)が更新された値を表示していないことを意味します。これは、Eclipseのバグが原因である可能性があります。または、Eclipseで使用可能なデバッグ情報が不十分である可能性があります。与えられた例だけでは言い難い。

関連する問題