第8講 関数(2)
第6話 3次元配列を返したり、送ったりする例

(f()で3次元配列を作り、その3次元配列を利用して、g()ではデータ入力、h()ではデータ表示)
を実現するプログラム例
#include<stdio.h>
#include<stdlib.h> //malloc()を使うためにインクルード
int*** f(); //3次元配列を作る
void g(int ***a); //3次元配列にデータを入力
void h(int ***a); //3次元配列のデータを表示
int main() {
  int ***a;
  a=f(); //f()が作った3次元配列を受け取る
  g(a); //3次元配列にデータを入力
  h(a); //3次元配列のデータを表示
  return(0);
}
//3次元配列を作る
int*** f() {
  int i, j;
  int ***a=(int ***)malloc(sizeof(int **)*3);
  for(i=0;i<3;i++)a[i]=(int **)malloc(sizeof(int *) * 5);
  for (i = 0; i < 3; i++){
    for (j = 0; j < 5; j++) {
      a[i][j] = (int *)malloc(sizeof(int) * 4);
    }
  }
  return(a);
}
//3次元配列にデータを入力
void g(int ***a) {
  int i, j, k;
  for (i = 0; i < 3; i++) {
    for (j = 0; j < 5; j++) {
      for (k = 0; k < 4; k++) {
        a[i][j][k] = 20 * i + 4 * j + k + 1;
      }
    }
  }
}
//3次元配列のデータを表示
void h(int ***a) {
  int i, j, k;
  for (i = 0; i < 3; i++) {
    for (j = 0; j < 5; j++) {
      for (k = 0; k < 4; k++) {
        if (a[i][j][k] < 10)printf(" %d ", a[i][j][k]);
        if (a[i][j][k] >= 10)printf("%d ", a[i][j][k]);
      }
      printf("\n"); //改行
    }
    printf("\n"); //改行
  }
  printf("\n"); //改行
}




第5話へ   第7話へ

002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ