#include <stdio.h>
#include <stdlib.h> // malloc, freeを使うために必要
int main() {
int rows = 3; // 行数(縦の数)
int cols = 4; // 列数(横の数)
// 【Step1のためにまず何を宣言しておくのか?】
// 答え:「int型ポインタ」のポインタ (ダブルポインタ) を宣言します。
int a[3][4];
// ==========================================
// これで動的な2次元配列 a[rows][cols] が完成!
// 試しに値を入れて表示してみます。
// ==========================================
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
a[i][j] = (i + 1) * (j + 1); // 適当な値を代入
}
}
// ==========================================
// 使い終わったら free() でメモリを解放する
// ==========================================
// ※確保した時と「逆の順番」で解放する必要があります!
// 1. 先に各行(Step2で作った中身)を解放する
// 2. 最後にポインタの配列自体(Step1で作った外枠)を解放する
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4gLy8gbWFsbG9jLCBmcmVl44KS5L2/44GG44Gf44KB44Gr5b+F6KaBCgppbnQgbWFpbigpIHsKICAgIGludCByb3dzID0gMzsgLy8g6KGM5pWw77yI57im44Gu5pWw77yJCiAgICBpbnQgY29scyA9IDQ7IC8vIOWIl+aVsO+8iOaoquOBruaVsO+8iQogICAgCiAgICAvLyDjgJBTdGVwMeOBruOBn+OCgeOBq+OBvuOBmuS9leOCkuWuo+iogOOBl+OBpuOBiuOBj+OBruOBi++8n+OAkQogICAgLy8g562U44GI77ya44CMaW505Z6L44Od44Kk44Oz44K/44CN44Gu44Od44Kk44Oz44K/ICjjg4Djg5bjg6vjg53jgqTjg7Pjgr8pIOOCkuWuo+iogOOBl+OBvuOBmeOAggogICBpbnQgYVszXVs0XTsKCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIC8vIOOBk+OCjOOBp+WLleeahOOBqjLmrKHlhYPphY3liJcgYVtyb3dzXVtjb2xzXSDjgYzlrozmiJDvvIEKICAgIC8vIOippuOBl+OBq+WApOOCkuWFpeOCjOOBpuihqOekuuOBl+OBpuOBv+OBvuOBmeOAggogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd3M7IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY29sczsgaisrKSB7CiAgICAgICAgICAgIGFbaV1bal0gPSAoaSArIDEpICogKGogKyAxKTsgLy8g6YGp5b2T44Gq5YCk44KS5Luj5YWlCiAgICAgICAgICAgIHByaW50ZigiJTJkICIsIGFbaV1bal0pOwogICAgICAgIH0KICAgICAgICBwcmludGYoIlxuIik7CiAgICB9CgogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAvLyDkvb/jgYTntYLjgo/jgaPjgZ/jgokgZnJlZSgpIOOBp+ODoeODouODquOCkuino+aUvuOBmeOCiwogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAvLyDigLvnorrkv53jgZfjgZ/mmYLjgajjgIzpgIbjga7poIbnlarjgI3jgafop6PmlL7jgZnjgovlv4XopoHjgYzjgYLjgorjgb7jgZnvvIEKICAgIAogICAgLy8gMS4g5YWI44Gr5ZCE6KGM77yIU3RlcDLjgafkvZzjgaPjgZ/kuK3ouqvvvInjgpLop6PmlL7jgZnjgosKICAgIAogICAgCiAgICAvLyAyLiDmnIDlvozjgavjg53jgqTjg7Pjgr/jga7phY3liJfoh6rkvZPvvIhTdGVwMeOBp+S9nOOBo+OBn+WkluaeoO+8ieOCkuino+aUvuOBmeOCiwogICAKCiAgICByZXR1cm4gMDsKfQ==