>> スピーカ1：のは、そのプログラムを書いてみましょう 名前の入力を促し、
3人の学生の家。
今、それらの名前や家を保存する 我々は、何を、6つの変数を使用することができます。
3つの名前の文字列、および他の 住宅の3つの文字列、
しかし、我々はすでに我々はクリーンアップすることができますことを知っている 代わりに、配列を使用して、そのコードが、
例えば用サイズ3の配列 3名、および他の配列
住宅の大きさ3。
しかし、それは我々はこれをクリーンアップすることができ判明 さらにまた、、実際にそれらを保つ
一緒に名前や家、その結果、 生徒の名前と彼または彼女の家
何とかそのためには、カプセル化されている 同じ変数に、話す。
>> これを行うには、しかし、我々は宣言する必要があります 私たち自身のデータ型、C言語で私たち自身の型、
Cの作者は必ずしもなかったこと 年前を考える。
これを行うために、我々は、キーワードを使用することができます typedefは、と一緒に
他のキーワードstruct。
それでは見てみましょう。
structs.hの内部では、私はすでにしました によって開始され得
CS50ライブラリを含む。
私は次の、typedefで構造体を入力するつもりです してから中括弧。
構造体の内部では、私はするつもりだ 学生が持っているものとするように指定
nameという文字列、および他の 文字列は、家と呼ばれる。
私はその後、私の中括弧を閉じるつもりだ、 と指定していることの名前
この新しいデータ型は、学生でなければならない。
つまり、この構文で私が持っている 私自身の新しいデータ型を宣言した
それは一瞬前には存在しなかったし、 このデータ型の内部に二つのデータである
フィールドまたはデータメンバ、名前と呼ばれる1、 1と呼ばれる家、どちらもの
文字列型である。
>> それでは、このタイプを使用してみましょう 実際のプログラムでは。
structs0.cでは、私は同じように得ている 私はいくつかにすでに開始
定型的なコード、と私は今よ このデータを使用するつもり
次のように、学生を入力します。
私が最初に宣言するつもりだ タイプの学生の配列、私はよ
配列の学生を呼ぶ -
複数 -
そして私は、そのサイズがあることを指定します の値であり、予告、3、
一定の学生が -
すべて大文字で -
私はここに宣言されたので、 以前のファイルに。
それでは、これらの3を反復しましょう 学生、の入力をユーザーに求める
自分の名前や家。
>> 私は0を得るint型のために、私は小さい その定数より、私は+ +。
そして今は、この本体の内部 ループ、私は何かをプリントアウトするつもりだ
学生の名前を挙げることができる。
私は、実際にそれを取得するつもりだ 指定することで、学生の名前
学生が私を囲む。
つまり、私は、i番目の学生が欲しい 配列になりました生徒を呼び出しましたが、
私は、i番目のスチューデントで取得したい 名前を付けて、これを行うには、私が使用するつもり
。オペレータ、で取得するために、 構造体の内部に特定のフィールド。
だから私は、私が学生のブラケットを指定します。名前を GetStringメソッドの戻り値を取得します（）。
その間、私はプリントアウトするつもりだ スチューデント言って似たような、
ハウス、今私が指定するつもりだ そのi番目の生徒の家のフィールド
の戻り値を取得しなければならない GetStringメソッドの別の呼び出し（）。
>> それでは、これら3で何かをやらせる 生徒の名前や家、
印刷のような単純なもの センテンス内の各点。
私は0を得るINTため、再び私はより少ない 学生は、私+ +のprintf "％sは％sである。
バックスラッシュN」、そして今私はプラグインしましょう これらの二つのフィールドの値は、
学生は、私。名前、コンマを一括 学生が私を囲む。家、近い
括弧、セミコロン。
>> そして今、私はもう一つのことを行う必要があります。
このファイルの最後に、私がする必要が 割り当てられたメモリを解放
GetSring（）によって舞台裏いる もちろんするためには、malloc関数を呼び出し、
文字列にメモリを割り当てる ユーザーの種類。
これには簡単です。
私は0を得るint型のために、私はより少ない 、私+ +、および体内の生徒
このループのために、私は単純にするつもりだ 私は自由、学生のブラケットを提供します。名前を、
無料の学生が私を囲む。家。
>> 今、我々は明らかにループの3を使用しました このプログラムでは、とき本当に私
ひとつを用いるが、これはあるかもしれない ただ、デモの為に、その結​​果、
我々は3つの異なる中で指定することができます 我々がやっていることを正確にどのような手順。
我々は最初の名前と家を取得している 学生の各々について、我々はその後だ
の名前と家をプリントアウト 3学生のそれぞれ、および
その後、我々はメモリを解放するつもりだ 学生の各々によって使用される。
しかし確実に我々はこれを組み合わせていたかもしれない ループの大きな一つに。
>> コンパイル、今度は保存でき、 このプログラムを実行してください。
構造体0を作る。/構造体0、スチューデント 名前、のはデビッドを提供しましょう​​、と彼は生きるよ
メイザーハウス、学生の名前で、みましょう ローレンと言うと、彼女はレベレットに住んでます
ハウス、学生の名前、ロブ、彼はよ カークランド家に住んでいる。
そして実際、ダビデはマザーにあり、 ローレンレベレットにあり、
とロブはカークランドにあります。