2017-03-25 1 views
-2

이 코드를 실행할 때마다 IDE에서 문제가 발견되었습니다. 이 솔루션을 제공 할 수 있습니까? C 언어 프로그래밍의 strcat()

#include<stdio.h> 
 
#include<string.h> 
 
int main(void) 
 
{ 
 
    char cname[4]="mahe"; 
 
    strcat(cname, "Karim"); 
 
    printf("%s",cname); 
 
    getch(); 
 
    return 0; 
 
}

+1

발견 한 문제는 무엇입니까? 오류 메시지 란 무엇입니까? [도움말 센터] (http://stackoverflow.com/help)를 방문하고 [How to Ask] (http://stackoverflow.com/help/how-to-ask), [How 최소, 완전하고 검증 가능한 예제 만들기] (http://stackoverflow.com/help/mcve), 여기에서 허용되는 질문 유형, 질문 작성 방법 및이 사이트를 효과적으로 사용하는 방법을 배울 수 있습니다. –

답변

2

배열 충분히 크지 않다. 원래 배열은 초기 값 끝에서 널 바이트를 유지하기에 충분하지 않으므로 strcat()은 문자열의 끝을 찾을 수 없습니다. 그런 다음 배열 외부에 씁니다. 이것들은 모두 정의되지 않은 동작을 일으 킵니다.

원래 문자열, 추가 할 문자열 및 후행 null 바이트를 포함 할만큼 충분히 선언해야합니다. 따라서 최소 10 바이트 (4 + 5 + 1) 여야합니다. char cname[10]

char cname[10] = "mahe"; 
strcat(cname, "Karim"); 
printf("%s\n", cname); 
+0

그래. Thnx Buddy –

0

변경 char cname[4]. 크기를 4로 설정 했으므로 처음에는 4 개의 문자를 추가 한 후에 더 이상 추가 할 수 없습니다.

크기를 변경하십시오. 그것입니다.

+0

Thnx Man, 그게 마지막 작품 –