唯伊堇 发表于 2019-8-27 12:02:47

动态申请的内存为什么不能当二维数组用呢?

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int M,N;
    printf("M,N:");
    scanf("%d,%d",&M,&N);
    int*ptr=NULL;
    realloc(ptr,M*N*sizeof(int));
    ptr=(int(*))ptr;
    int i,j;
    for(i=0;i<M;i++)
    {
      for(j=0;j<N;j++)
            printf("%d",ptr);
      printf("\n");
    }
    free(ptr);
    return 0;
}想把一块连续的空间转换成二维数组的样子,ptr=(int(*))ptr就是在转换呀,但为什么ptr不行呢?

Krant5 发表于 2019-8-27 13:59:06

你当你学的啥语言呢?动态类型? int*ptr=NULL;前面就已经规定了他是什么类型的,岂是你想转换就能转换的?

唯伊堇 发表于 2019-8-27 15:05:22

Krant5 发表于 2019-8-27 13:59
你当你学的啥语言呢?动态类型? int*ptr=NULL;前面就已经规定了他是什么类型的,岂是你想转换就能转换的?

傻逼了,谢谢!
页: [1]
查看完整版本: 动态申请的内存为什么不能当二维数组用呢?