#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *a = "Hello ";
const char *b = "World";
printf("%s", strcat(a, b));
system("PAUSE");
return EXIT_SUCCESS;
}
答案 0 :(得分:7)
因为您在不属于您的内存位置写入数据。
实际上,在运行strcat时,您将在字符串a的字符后面追加字符串b的字符。但是你没有在字符串a之后声明内存。
答案 1 :(得分:2)
当你将b连接到a时,你正在写入你没有分配的内存,