第7講 ポインタ
第7話 多次元配列と1次元配列の関係
002
前半は2次元配列、後半は1元配列を利用して実現するコード例
#include<iostream> //入出力のために組み込む
using namespace std; //coutを使えるようにするために必要
void f(); //2次元配列による処理
void g(); //1次元配列による処理
int main() {
  f(); //2次元配列による処理
  cout << endl; //改行
  g(); //1次元配列による処理
  return(0);
}
void f() {
  int i, j;
  //2次元配列の用意
  int **a = (int **)malloc(sizeof(int *) * 7);
  for (i = 0; i < 7; i++)a[i] = (int *)malloc(sizeof(int) * 6);
  //データ作成
  for (i = 0; i < 7; i++) {
    for (j = 0; j < 6; j++) {
      a[i][j] = 6 * i + j + 1;
    }
  }
  //データの表示
  for (i = 0; i < 7; i++) {
    for (j = 0; j < 6; j++) {
      if (a[i][j]<10)cout << " " << a[i][j] << " ";
      if (a[i][j] >= 10)cout << a[i][j] << " ";
    }
    cout << endl; //改行
  }
}
void g() {
  int *a = (int *)malloc(sizeof(int *) * 42);
  //データ作成
  for (int i = 0; i < 42; i++) {
    a[i] = i + 1;
  }
  //データの表示
  for (int i = 0; i < 7; i++) {
    for (int j = 0; j < 6; j++) {
      if (a[6 * i + j]<10)cout << " " << a[6 * i + j] << " ";
      if (a[6 * i + j]>=10)cout << a[6 * i + j] << " ";
    }
    cout << endl; //改行
  }
}


また、g()は
void g() {
  int i, j;
  //2次元配列の用意
  int *a = (int *)malloc(sizeof(int) * 42);
  //データ作成
  for (i = 0; i < 7; i++) {
    for (j = 0; j < 6; j++) {
      
*(a + 6 * i + j) = 6 * i + j + 1;
    }
  }
  //データの表示
  for (i = 0; i < 7; i++) {
    for (j = 0; j < 6; j++) {
      if (*(a + 6 * i + j) <10)cout << " " << *(a + 6 * i + j) << " ";
      if (*(a + 6 * i + j) >=10)cout << a[6 * i + j] << " ";
    }
    cout << endl; //改行
  }
}
等でも大丈夫です。

次はf()が3次元で行ったことを、
g()は2次元で処理して、
001
を実現して下さい。




第6話へ   第8話へ

002

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

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