そこでポインタを渡してあげれば良い。
以下に対処方法の例。
2次元配列a[3][5]に関数funcで代入をする方法を示した。
=============================
[main.c]
#include <stdio.h>
#include "func.h"
int main()
{
int a[3][5]; //aの宣言
func(a); //aのポインタを関数funcに渡して処理をさせる
/*aの中身の確認*/
int i,j;
for(i=0;i<3;i++){
for(j=0;j<5;j++){
printf("%d \n",a[i][j]);
}
}
return 0;
}
=============================
[func.h]
int func(int (*a)[5]); //関数の宣言
=============================
[func.c]
#include "func.h" //ヘッダーのインクルード
int func(int (*a)[5]){ //関数の中身
int i,j;
for(i=0;i<3;i++){ //aに i x j を代入
for(j=0;j<5;j++){
a[i][j] = i*j;
} }
return 0;
}
[main.c]
#include <stdio.h>
#include "func.h"
int main()
{
int a[3][5]; //aの宣言
func(a); //aのポインタを関数funcに渡して処理をさせる
/*aの中身の確認*/
int i,j;
for(i=0;i<3;i++){
for(j=0;j<5;j++){
printf("%d \n",a[i][j]);
}
}
return 0;
}
=============================
[func.h]
int func(int (*a)[5]); //関数の宣言
=============================
[func.c]
#include "func.h" //ヘッダーのインクルード
int func(int (*a)[5]){ //関数の中身
int i,j;
for(i=0;i<3;i++){ //aに i x j を代入
for(j=0;j<5;j++){
a[i][j] = i*j;
} }
return 0;
}
0 件のコメント:
コメントを投稿