动态申请的内存为什么不能当二维数组用呢?
#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不行呢?
你当你学的啥语言呢?动态类型? int*ptr=NULL;前面就已经规定了他是什么类型的,岂是你想转换就能转换的? Krant5 发表于 2019-8-27 13:59
你当你学的啥语言呢?动态类型? int*ptr=NULL;前面就已经规定了他是什么类型的,岂是你想转换就能转换的?
傻逼了,谢谢!
页:
[1]