문제

#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;
}
도움이 되었습니까?

해결책

소유하지 않은 메모리 위치에서 데이터를 작성하고 있기 때문입니다.

실제로 Strcat을 실행할 때 String A의 문자 바로 뒤에 String B의 문자를 추가합니다. 그러나 당신은 문자열 a 이후에 메모리를 주장하지 않았습니다.

다른 팁

B를 A에 연결할 때 메모리에 글을 쓰지 않고 할당하지 않았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top