記憶の解放
割振られた記憶と終わったら、資源を自由に使えるようにし、速度を増進するので決して記憶を解放することを忘れるべきでない。 解放することは記憶を、使用する自由な機能を割振った。
free(ptr);
Structures
基本データのタイプと同様、cに共通の名前の下で互いに関連付けられるデータ項目を分けることを可能にする構造のメカニズムがある。 これはユーザー定義のタイプと一般に言われる。
キーワードのstructは構造定義を始め、札は構造に固有の名前を与える。 構造に加えられるデータタイプおよび変数名は構造のメンバーである。 結果はタイプ規制詞として使用されるかもしれない構造の型板である。 次は月の札が付いている構造である。
struct month
{
char name[10];
char abbrev[4];
int days;
};
構造のタイプは通常typedefの声明を使用してファイルの開始に近く定義される。 typedefは新型を定義し、示し、プログラム全体を通す使用を許可する。 typedefは通常ファイルの#defineおよび#includeの声明の直後に起こる。
構造よりもむしろ構造の名前のstructのキーワードを指定することを示すためにtypedefのキーワードが単語を定義するのに使用されるかもしれない。 それは通常大文字でtypedefを示すためにである。 構造定義の例はここにある。
typedef struct {
char name[64];
char course[128];
int age;
int year;
} student;
これはタイプ学生の変数が次の通り宣言することができる新型学生を定義する。
student st_rec;
類似したこれがintか浮遊物の宣言にいかにあるか通知。 変数名はst_rec、それ持っている名前、コース、年齢および年と電話されるメンバーをである。 同様に、
typedef struct element
{
char data;
struct element *next;
} STACKELEMENT;
ユーザー定義のタイプstructの要素の変数は今次の通り宣言されるかもしれない。
STACKELEMENT *stack;
次の構造を考慮しなさい:
struct student
{
char *name;
int grade;
};
struct学生へのポインターは次の通り定義されるかもしれない。
struct student *hnc;
ポインターに、メンバーのポインターオペレータ構造にアクセスした場合、- >点オペレータの代りに使用される。 等級を構造に加えるため、
s.grade = 50;
構造に等級を次の通り割り当てることができる。
s->grade = 50;
基本データのタイプと同じように、耐久性があるために行なわれている渡された変数への機能の変更がほしいと思えば参照を渡らなければならない(住所を渡しなさい)。 メカニズムは基本データのタイプと丁度同じである。 住所を渡し、変数をポインター表示法を使用して参照しなさい。
|