amazon

4.3.11

C, C++で配列を返す関数

C、C++では配列を返す関数は作れない。
そこでポインタを渡してあげれば良い。

以下に対処方法の例。
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;
 }

0 件のコメント:

コメントを投稿