-1

こんにちは友人私は、メイン画面に約 10 個のアイコンを表示するこれらのプロジェクトを持っています。すべてのアイコンを選択すると、別の 5 つの画像が表示されます (これらの数は異なりますが、それぞれ 5 つと見なします)。IT は一種のメイン画面とサブ画面です。これで、ほぼ 88 枚の画像がアイコンとして画面に表示されます。画像ごとに const char 配列を作成したので、88 個の const char 型の配列のリストがあり、それぞれにほとんど有益な名前はありません。私の考えは、これらすべての名前を使用して別の配列を作成し、必要なときにいつでも呼び出すことです。以下に例を示します。

 const char  *arr_1[] = {"one_ele_zero", "one_ele_one", "one_ele_two", "one_ele_three"};

 const char  *arr_2[] = {"two_ele_zero", "two_ele_one", "two_ele_two", "two_ele_three"};

 const char  *arr_3[] = {"three_ele_zero", "three_ele_one", "three_ele_two", "three_ele_three"};


 const char **arr_all[] = {arr_1, arr_2, arr_3};


 int main()
 {
     printf("%s\n",*arr_all[0]);

     system("PAUSE");

     return 0;


 }

このコードはコンパイルされ、最初の配列の 0 番目の位置文字列を出力できますが、残りを出力する方法がわかりません。これを行う他の方法があると思われる場合は、私は C の初心者です..私に提案するか、サンプルプログラムを案内してください.

4

2 に答える 2

1

あなたはこのようなことをしなければなりません、

for(i=0;i<3;i++)
 for(j=0;j<3;j++)
     printf("%s\n",*(arr_all[i]+j));

Yourには、 、およびarr_all[]のベース アドレスが含まれています。のみを使用する場合arr_1[]arr_2[]arr_3[]

printf("%s\n",*arr_all[0]);各 arr_1[] の最初の要素のみを出力 し printf("%s\n",*arr_all[i]);、( ar_1 , arr_2, arr_3) 配列のベースアドレスを取得し、次を使用してその配列の各要素を出力します0<=i<3printf("%s\n",*(arr_all[i]+j));0<=i<30<=j<3arr_x[]j

于 2013-04-11T07:09:32.370 に答える
0
printf("%s\n", arr_all[0][1]);//one_ele_one
于 2013-04-11T08:20:42.333 に答える