강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Maroo님의 프로필 이미지
Maroo

작성한 질문수

홍정모의 따라하며 배우는 C++

6.6 C언어 스타일의 배열 문자열

strcat 질문드립니다.

작성

·

227

0

#include <iostream>
#include <cstring>

using namespace std;

int main() {

    char source[] = "Copy this!";
  char dest[50];
    strcpy_s(dest, source);
    cout << source << endl;
    cout << dest << endl;

    strcat_s(dest, dest);
    cout << dest << endl;    
    cout << source << endl;

    return 0;
}

strcat_s(dest, dest)를 해도 Copy this!Copy this! 로 잘 나올지 궁금해서 실행해 봤는데, 런타임 에러가 떴습니다.

buffer is too small이란 에러가 무엇을 뜻하나요?

메모리 공간이 부족하다는 건가 싶었는데, dest의 최대 크기가 50이므로 부족할 이유도 딱히 없는 것 같고 런타임 에러의 원인이 궁금합니다.

답변 1

0

strcpy_s와 strcat_s의 인자를 적절하게 사용하신 것이 맞나요?

두 함수는 (strcpy와 strcat와는 다르게)

기본적으로 세 개의 인자를 받습니다.

 

아래 링크를 참고 바랍니다.

https://en.cppreference.com/w/c/string/byte/strcpy

https://en.cppreference.com/w/c/string/byte/strcat

 

Maroo님의 프로필 이미지
Maroo

작성한 질문수

질문하기