为什么每次我只要是scanf输出动态空间得这个范围就出错

img


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int row,col;
    int i,j;
    int **p;
    printf("Please input row and col:\n");
    scanf("%d%d",&row,&col);
    p=(int **)malloc(row*sizeof(int *));
    for(i=0;i<row;i++)
    {
        p[i]=(int *)malloc(col*sizeof(int));
    }
    srand((unsigned)time(NULL));
    for(i=0;i<row;i++)
    {
        for(j=0;j<col;j++)
        {
            p[i][j]=rand()%100;//0-99
        }
    }
    printf("Matrix is:\n");
    for(i=0;i<row;i++)
    {
        for(j=0;j<col;j++)
        {
            printf("%d\t",p[i][j]);
        }
        printf("\n");
    }
    for(i=0;i<row;i++)
    {
        free(p[i]);
    }
    free(p);
    return 0;
}

代码没发现题主讲的问题。