是可以的
  我发给你咯??
   你自己慢慢参悟吧~!
#include <stdio.h>
#include <stdlib.h>
void main()
{
    int row;
    int column;
    int **p;
    int i;
    int j;
    printf("请输入行\n");
    scanf("%d",&row);
    printf("请输入列\n");
    scanf("%d",&column);
    p = (int **)malloc(row*sizeof(int *));
    if(p==NULL)
    {
        printf("空间分配失败,程序退出\n");
        exit(0);
    }
    for(i = 0;i < row;i++)
    {
        *(p+i) = (int *)malloc(column*sizeof(int));
        if(*(p+i)==NULL)
        {
            printf("空间分配失败,程序退出\n");
            exit(0);
        }
    }
    for(i = 0;i < row;i++)
    {
        for(j = 0;j < column;j++)
        {
            scanf("%d",&p[i][j]);
        }
    }
    for(i = 0;i < row;i++)
    {
        for(j = 0;j < column;j++)
        {
            printf("%d\t",p[i][j]);
        }
        printf("\n");
    }
    for(i = 0;i < row;i++)
    {
        free(*(p+i));
    }
    free(p);
}