ä¸è¨ã®ããã«C/C++ã®é
åã§å¤æ¬¡å
é
åãä½ãã°é£ç¶ããã¡ã¢ãªé åã¨ãªãã、åçã«å¤§ãããå¤ããããªãã、é¢æ°ã«æ¸¡ãããããã®ã大å¤ã 。 int a[N][M]; ä¸æ¹、ãã¤ã³ã¿ã使ã£ãä¸è¨ã®æ¹æ³ã ã¨ç¢ºä¿ããã¡ã¢ãªé åãä¸é£ç¶ã¨ãªã。 int **a = new int*[N]; for (int i = 0; i < N; i++) a[i] = new int[M]; åçã«ã¡ã¢ãªç¢ºä¿ãã¦é£ç¶ããã¡ã¢ãªé åã«ãããå ´å、以ä¸ã®ããã«ããã°è¯ã。 int **a = new int*[N]; a[0] = new int[N * M]; for (int i = 1; i < N; i++) a[i] = a[0] + i * M; ããã§、 a[i][j] 㨠(*a)[i*M+j] ã¯åãå¤ã示ã。 äºæ¬¡å
é
å、ä¸æ¬¡å
é
åãæ±ã£ãå®éã®ã³ã¼ã(C/C++)ãæå¾ã«è¼ãã¦ãã。 Cãã¼ã¸ã§ã³: #include <stdio.h> #include <stdlib.h> /* NX*NYã®äºæ¬¡å
é
åããã³NX*NY*NZã®ä¸æ¬¡å
é
å. */ #define NX 5 #define NY 6 #define NZ 7 int main() { int **x2; int ***x3; int cnt2 = 0; int cnt3 = 0; int i, j, k; /* äºæ¬¡å
é
åã®ä½æ */ x2 = (int**)malloc(NX * sizeof(int*)); x2[0] = (int*)malloc(NX * NY * sizeof(int)); for (i = 1; i < NX; i++) x2[i] = x2[0] + i * NY; /* ä¸æ¬¡å
é
åã®ä½æ */ x3 = (int***)malloc(NX * sizeof(int**)); x3[0] = (int**)malloc(NX * NY * sizeof(int*)); x3[0][0] = (int*)malloc(NX * NY * NZ * sizeof(int)); for...
Good things. Bad things.