c语言 动态分配内存空间 程序如下:请问哪里错了,应该怎么修改?谢谢

2024-12-02 09:45:29
推荐回答(3个)
回答1:

void main()
{
int m,i;
scanf("%d",&m);
char (*a)[100]; //指向数组的指针
a = (char (*)[100])malloc(sizeof(char[100]) * m); //分配m个char[100]而不是char*
for(i=0;i {
scanf("%s",a[i]);
}
for(i=0;i {
printf("%s",a[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);
}

回答3:

char (*a)[100; //少了一个右中括号
改为:
char (*a)[100];
功能没验证,编译已通过。