我正在使用下面的代码在我的字符串中添加一些"0"字符,但似乎存在问题并且程序将崩溃.一切似乎都是逻辑但我不知道问题出在哪里?
#include <stdlib.h>
#include <string.h>
int main()
{
char *Ten; int i=0; Ten = malloc(12);
Ten="1";
for (i=0;i<10;i++)
strcat(Ten,"0");
printf("%s",Ten);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您声明Ten为指向字符串文字的指针.但是,您不能依赖于能够修改字符串文字,因此程序崩溃.
要解决此问题,您可以将其声明Ten为数组:
int main()
{
char Ten[12]="1"; int i=0;
for (i=0;i<10;i++)
strcat(Ten,"0");
printf("%s",Ten);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
请注意,您需要12个字节; 11表示字符,1表示终止NUL字符.