#include<stdio.h>
#include<stdlib.h>

#define RR      (16)            // 行数
#define CC      ( 8)            // 列数

int main()
{
    int i, j;
#if   1
    int (*d)[RR][CC] = malloc(sizeof(*d));
#elif 0
    int (*d)[RR][CC] = (int (*)[RR][CC]) malloc(sizeof(*d));
#elif 0
    int (*d)[RR][CC];
    d = malloc(sizeof(*d));
#elif 0
    int (*d)[RR][CC];
    d = (int (*)[RR][CC]) malloc(sizeof(*d));
#endif
    for (i = 0; i < RR; i++) {
        for (j = 0; j < CC; j++) {
            (*d)[i][j] = i * 100 + j;
        }
    }
    for (i = 0; i < RR; i++) {
        for (j = 0; j < CC; j++) {
            printf("%04d ", (*d)[i][j]);
        }
        printf("\n");
    }
    free(d);

    return 0;
}
