//对称字符串
#include<stdio.h>
#include<string.h>
char res[5000000];
int main()
{
// char res[5000000];
int n;
scanf("%d",&n);
int len=0;
for(int i=1;i<=n;++i)
{
strcat(res+len+1,res);
res[len]='A'+i-1;
len=strlen(res);
}
printf("%s",res);
return 0;
}
数组太大了,res也没有初始化就使用。
输入n后再声明大小为n的res数组。
char res=(char)malloc(n*sizeof(char));
可以,写在main里面就是main里面的局部变量,写在外面就是全局变量。
申请的数组太大,放在main函数外是全局变量,可以申请这么大空间,放在函数里是局部变量,不能申请这么大空间
放在函数中的局部变量是在栈里面的,栈默认没有这么大空间