/

#include
#include

typedef struct base {
unsigned int ui;
long double ld;
} BASE;
typedef BASE *pBASE;

unsigned int rows = 3, columns = 5;

void de_allocate(pBASE*);

int main(void) {
pBASE *matrix;
unsigned int i, j;

/* ステップ 1: 行を設定 */
matrix = (pBASE *) calloc( rows, sizeof(BASE *));

/* ステップ 2: 列を設定 */
for (i = 0; i < rows; ++i)
matrix[i] = (BASE *) calloc( columns, sizeof(BASE));

for (i = 0; i < rows; i++)

for (j = 0; j < columns; j++)
matrix[i][j].ld = i + j; /* 初期化*/

for (i = 0; i < rows; ++i) {
printf("\n\n");
for (j = 0; j < columns; ++j)
printf("%5.2Lf", matrix[i][j].ld);
}
de_allocate(matrix);
return 0;
}

void de_allocate(pBASE *x) {
int i;

for (i = 0; i < rows; i++) /* ステップ 1: 列を削除 */
free(x[i]);

free(x); /* ステップ 2: 行を削除 */

}