1
#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;
}
4

2 回答 2

7

因为您正在将数据写入您不拥有的内存位置。

实际上,在运行 strcat 时,您将在字符串 a 的字符之后附加字符串 b 的字符。但是您还没有要求字符串 a 之后的内存。

于 2010-01-14T08:19:55.810 回答
2

当您将 b 连接到 a 时,您正在写入未分配的内存,

于 2010-01-14T08:19:26.710 回答