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 に答える