- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:構造対のメンバについて)
構造対のメンバについて
このQ&Aのポイント
- プログラミング形式に戸惑っている方へ。構造体のメンバについて簡単に解説します。
- 構造体の最後の変数の意味やmain文内の変数の値の代入先について解説します。
- プログラミング初心者のための、構造体と変数の関係についてわかりやすく説明します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>ここで質問なのですが、最初に定義した構造体の最後の変数(?)は一体どうゆう意味なのでしょうか。 「自己参照構造体」で検索して下さい。 リスト構造を作る際に使われます。 # 参照先が1つなので、単方向リスト構造になるでしょうが… >また、main文の中でこのpp->ptrにaを代入してますが、このaはどこに入っていくのでしょうか。 自己参照の次の要素として…ですが、int型を突っ込むのはおかしいです。 ついでに、ppが指している先が不定です。 # おそらく省略した中にあるのでしょうが…。
その他の回答 (3)
- higeG
- ベストアンサー率22% (4/18)
回答No.4
データ構造とアルゴリズムに関する書籍かサイトを読むことをお勧めします。 そうすれば、自ずと上記プログラムの内容が理解できるようになると思います。 逆にそれなしで理解することは至難の技かと。
- osamuy
- ベストアンサー率42% (1231/2878)
回答No.3
>struct test1 *ptr ――は、線形リストを構成する常套手段。 > pp->ptr=a; もし本当にこの通りなら、単なるプログラム誤りかと。 抜粋されたところ以外をちゃんと読めば、何か分かるかもしれませんが。
- asuncion
- ベストアンサー率33% (2127/6290)
回答No.1
>構造体の最後の変数(?)は一体どうゆう意味なのでしょうか。 このような構造体を「自己参照型構造体」といいます。 リスト構造などのデータ構造を実装する際に用います。 メンバーptrは、自分と同じ型を指すためのポインター変数です。 >main文 main関数です。main文という用語はありません。 >pp->ptrにaを代入してます ポインター変数にint型を代入すると、通常は何かおかしなことが起きます。 抜粋する際に見間違えていませんか?
お礼
お礼が遅くなってしまって申し訳ありません。 自己参照構造体という形式なのですね。 そのキーワードでググってみたらなんとなく理解出来ました! pp->ptr=aというのがあり得ないというのも理解できました。笑 とりあえずはNULLを入れておいて、次の構造体の文のメモリを確保して・・・を繰り返していく感じなのですね。 ありがとうございました!