- ベストアンサー
ポインタと配列
配列を複数他の関数に渡す方法を知りたいです。1つの場合は、次でできました。 void sample2(int *a) { printf("%d",a[2]); } int sample1() { int a[]={0,1,2}; sample2(a) return(0); } sample1のなかにもっと多数の配列a1,a2,a3,....,ax,.... が存在する時に、それを他の関数にわたす効率のいい方法はありますか?基本的な質問かもしれませんがCの本が今手元に無かったので質問させていただきました。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
配列の要素数がある程度決まっているのなら多次元配列を使う手がありますね。 こんな感じで、 ---- int hairetu[][3] = {{1,2,3},{4,5,6},...{l,m,n}}; sample2(hairetu); ---- void sample2 (int** hairetu) { printf ("%d", hairetu[0][0]); } ---- あと、ポインタ配列を使う手もありますね。 ---- int* hairetu[10]; int a1[] = {1,2,3,4,5}; int a2[] = {6,7,8,9,0}; : hairetu[0] = a1; hairetu[1] = a2; : sample2 (hairetu); ---- void sample2 (int** hairetu) { printf ("%d", hairetu[0][0]); } ---- いかがでしょう?