>170
作りたいプログラムはファイルの中身を表示するのが目的です。
下のプログラムで3行7列は#defineによって定義してますよね。
自分ででもファイルの中は実際はわからないわけですから何行何列
かはプログラム自体がファイルを開いたときに認識するように
したいのです。つまり例題ファイルを開いたときに下のプログラム自体が
3行7列を認識して2次元行列ma[][]を表示したいようにしたいのです。
プログラムさえできればmalloc関数は使わなくても大丈夫です。
説明不足があったらすみません。お願いします。

#include <stdio.h>
#define COL 7
#define ROW 3
int main(void)
{
FILE * f;
int data[ROW][COL], i, j, is_error = 0;
if ((f = fopen("data.txt", "r")) == NULL) return 1;
for (i = 0; !is_error && i < ROW; ++i)
for (j = 0; !is_error && j < COL; ++j)
if (fscanf(f, "%d", &data[i][j]) != 1) is_error = 1;
fclose(f);
if (is_error) return 1;
printf("%d行%d列\n", ROW, COL);
return 0;
}