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

#define GYOU   (7)
#define RETSU  (11)

void val_set(double **p);
void val_show(double **p);

int main()
{
    int i;
    double **p1;

    // alloc
    p1 = (double **) malloc(sizeof(double *) * GYOU);   // ポインタの配列
    p1[0] = (double *) malloc(sizeof(double) * GYOU * RETSU);   // 実際のデータ
    for (i = 1; i < GYOU; i++) {
        p1[i] = p1[i - 1] + RETSU;
    }
    // access
    val_set(p1);
    val_show(p1);
    // free
    free(p1[0]);
    free(p1);

    return 0;
}

void val_set(double **p)
{
    int i, j;

    for (i = 0; i < GYOU; i++) {
        for (j = 0; j < RETSU; j++) {
            p[i][j] = (double) i *100.0 + (double) j;
        }
    }
}

void val_show(double **p)
{
    int i, j;

    for (i = 0; i < GYOU; i++) {
        for (j = 0; j < RETSU; j++) {
            printf("%04.0f ", p[i][j]);
        }
        printf("\n");
    }
}
