WisdomSoft - for your serial experiences.

6.5 ポインタの配列

個々の要素がポインタ型である、ポインタの配列を作成します。ポインタの配列を用いることで、大きなデータを構造的に管理できます。

6.5.1 ポインタ型の配列を作成する

ポインタはメモリアドレスを格納する変数の一種なので、整数型などの一般的な変数と同じように、ポインタ型の配列を作成することもできます。配列の個々の要素がポインタであるという点を除けば、通常の配列と同じように扱えます。1次元でも多次元でも、基本的に今までの配列と同じです。

ポインタの配列は、次のようの宣言することができます。

ポインタ配列の宣言
 *ポインタ変数名[];

こうすることで、複数のポインタを配列として統一した管理を行うことができるようになります。添字を指定することで格納されているアドレスを引き出したり、ある要素に格納されているアドレスの内容にアクセスすることが可能です。単純にポインタ変数を配列化しただけであり、その扱いは配列とポインタを理解していれば難しいものではありません。

例えば、複数の文字列を配列のように管理する必要がある場合、多次元配列を用いるよりも文字列へのポインタを配列で管理する形が自然でしょう。

コード1
#include <stdio.h>

int main() {
	char *chStr[] = {
		"Blue Blue Glass Moon" ,
		"Under The Crimson Air"
	};

	printf("%s\n%s\n" , *chStr , *(chStr + 1));
	return 0;
}
実行結果
コード1 実行結果

コード1の配列 chStr は、文字列へのポインタを格納する 2 つの要素で構成されています。これらの配列の要素は文字列を格納しているのではなく、文字列へのポインタを保存しているだけです。2 次元配列による文字列テーブルに比べ柔軟に扱うことができ、ポインタが参照するアドレスを変えるだけで、テーブルを更新することができます。