2016-10-14 12 views
1

構造内のデータにノード*変数NODEをどのように割り当てることができますか?リンク先でNODEの最初の=最初のリンクの意味は何ですか?

struct node 
{ 
    int info; 
    struct node *link; 
}; 

typedef struct node* NODE; 

//IN SOME OTHER FUNCTION 
NODE temp,first; 
temp = first; 
first = first->link; // I WANT HELP WITH THIS LINE. 
+0

リスト内の次の項目を最初に指し示すように割り当てます。これは実装の意味を表します。まず –

+1

[malloc関数](http://man7.org/linux/man-pages/man3/malloc.3.html)は、あなたの友人...または敵することができ.... – LPs

+0

」があり、ヌルである必要はありませんそれが意味チュートリアル・スタイル」[ここに答える](http://stackoverflow.com/a/23280743/4142924) –

答えて

0

リンクされたリストには、いくつかの情報があるノードがあります。すべてのノードには、次のノードのアドレスがあります。

struct node 
{ 
    int info;   //Information or data which is stored at every node 
    struct node *link; // Address of next node 
}; 

最初=初段>リンク。 //私はこの線で助けたい。

現在のノードで完了した場合は、次のノードにアクセスする必要があります。 この行では、リンクリスト の次のノード(first->link)にアクセスし、次のノードをfirst(最上位ノード)にしています。

-1

firststruct node *

linkもですから、その逆も他に1とを割り当てることができますstruct node *

あるタイプのものです。

この例でfirstの元の値が別の変数tempに格納され、その後firstfirstlinkの値であったものに置き換えられます。あなたは同等に書くことができます

first = temp->link 

最後の行の代わりに、うまくいけばそれほど混乱させることはありません。

+0

何が未定義の動作ですか? 'NODE'は(typedef''によって) '構造体のノード*'であるので、それが唯一のポインタがどこでもポインタに割り当てられています。 –

関連する問題