이 코드를 실행할 때마다 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; }
-2
A
답변
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, 그게 마지막 작품 –
발견 한 문제는 무엇입니까? 오류 메시지 란 무엇입니까? [도움말 센터] (http://stackoverflow.com/help)를 방문하고 [How to Ask] (http://stackoverflow.com/help/how-to-ask), [How 최소, 완전하고 검증 가능한 예제 만들기] (http://stackoverflow.com/help/mcve), 여기에서 허용되는 질문 유형, 질문 작성 방법 및이 사이트를 효과적으로 사용하는 방법을 배울 수 있습니다. –