c语言关于 动态分配内存空间问题 程序如下,运行有问题,请问错在哪里,怎样修改?谢谢了

2025-06-20 09:26:48
推荐回答(2个)
回答1:

void main()
{
int m,i;
scanf("%d",&m);
char (*a)[50],(*b)[50];//指向数组的指针
a = (char (*)[50])malloc(sizeof(char[50]) * m); //要分配m个char[50]的空间
b=a;
for(i=0;i {
scanf("%s",b[i]);
}
for(i=0;i {
printf("%s",b[i]);
printf("\n");
}
free(a);
}

回答2:

#include
#include
void main()
{
int m,i;
scanf("%d",&m);
char *a; //指向数组的指针
a = (char *)malloc(sizeof(char ) * m);
for(i=0;i {
scanf(" %c",&a[i]);
}
for(i=0;i {
printf("%c",a[i]);
printf("\n");
}
free(a);
}