第11講 ポインタの学習
第11話 3次元配列を送ったり返したりする
実行画面が
1 7 4 0
9 4 8 8
2 4 5 5
1 7 1 1
5 2 7 6
1 4 2 3
2 2 1 6
8 5 7 6
1 8 9 2
7 9 5 4
3 1 2 3
3 4 1 1
3 8 7 4
2 7 7 9
3 1 9 8
02 14 08 00
18 08 16 16
04 08 10 10
02 14 02 02
10 04 14 12
02 08 04 06
04 04 02 12
16 10 14 12
02 16 18 04
14 18 10 08
06 02 04 06
06 08 02 02
06 16 14 08
04 14 14 18
06 02 18 16
となるアプリ例
#include<stdio.h>
#include<stdlib.h>
int*** f(int ***x);
//送られてきた3次元配列x[3][5][4]にランダムデータを収納して、
//それを自分が作った3次元配列y[3][5][4]にコピーしてから自分が作った
//3次元配列y[3][5][4]の先頭アドレスを返す社員
void g(int ***x,int ***y);
//社長mainが送ってきた3次元配列x[3][5][4]と3次元配列y[3][5][4]
//について3次元配列y[3][5][4]の方はすべてのデータを2倍してから、
//3次元配列x[3][5][4]と3次元配列y[3][5][4]のデータを表示する社員
int main(){
int i,j;
int ***x=(int ***)malloc(sizeof(int **)*3);
for(i=0;i<3;i++)x[i]=(int **)malloc(sizeof(int *)*5);
for(i=0;i<3;i++)for(j=0;j<5;j++)x[i][j]=(int **)malloc(sizeof(int *)*4);
int ***a; //fが返してくる3次元配列の先頭アドレスの受け皿
a=f(x);
g(x,a);
return(0);
}
int*** f(int ***x){
int i,j,k;
int ***y=(int ***)malloc(sizeof(int **)*3);
for(i=0;i<3;i++)y[i]=(int **)malloc(sizeof(int *)*5);
for(i=0;i<3;i++)for(j=0;j<5;j++)y[i][j]=(int **)malloc(sizeof(int *)*4);
for(i=0;i<3;i++){
for(j=0;j<5;j++){
for(k=0;k<4;k++){
x[i][j][k]=rand()%10;
}
}
}
for(i=0;i<3;i++){
for(j=0;j<5;j++){
for(k=0;k<4;k++){
y[i][j][k]=x[i][j][k];
}
}
}
return(y);
}
void g(int ***x,int ***y){
int i,j,k;
for(i=0;i<3;i++){
for(j=0;j<5;j++){
for(k=0;k<4;k++){
y[i][j][k]=2*y[i][j][k];
}
}
}
for(i=0;i<3;i++){
for(j=0;j<5;j++){
for(k=0;k<4;k++){
printf("%d ",x[i][j][k]);
}
printf("\n");
}
printf("\n");
}
printf("\n");
for(i=0;i<3;i++){
for(j=0;j<5;j++){
for(k=0;k<4;k++){
if(y[i][j][k]<10)printf("0%d ",y[i][j][k]);
if(y[i][j][k]>=10)printf("%d ",y[i][j][k]);
}
printf("\n");
}
printf("\n");
}
}
コピペ用添付ファイル
最後に関数ポインタを勉強しましょう。
第10話へ 第12話へ
第2部目次に戻る 第1部目次に戻る
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
ecliqse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
ecliqse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ