C言語の配列は、実行後に配列サイズを変更できません。
よって、そのアプリケーションで使うデータ数が決まっていない場合、
使うであろう十分な要素数の配列にして、
先頭要素から順番に詰めて記憶する取り扱いをしました。
この時、『配列に何個まで記憶されているかを記憶する変数』と
一緒に使ってきましたが、
このような変数を使わなくても、管理できる場合があります。
それは、配列の各要素を順番に処理するだけのようなデータの場合です。
このような場合は、配列においてデータの並びが終わった区切りが分かればいいので、
データとして使わないような値を、終端値と決めて、要素に埋め込んで使います。
C言語において、このような管理をする代表的なデータが文字列です。
C言語では文字列を記憶する型がなく、文字コードが並ぶ先頭の文字を指すポインタで管理します。
そして、その並びの終端値を'\0' のコードと決めて使っています。
例えば試験点数のデータが数件あるとして、それを配列で管理させる例で示します。
この場合、負の点数がないので例えば-99を
情報の区切りまたは終端と決めて使います。
以下は、数字以外や負のキー入力データまで、配列へのデータ追加を繰り返す関数 input_u を実行した後、
入力したデータを列挙しているプログラムです。
(step1)