자주 하는 실수라 스크랩 해놓자.
strcpy_s는 c언어에서 문자열을 복사하는 기능을 한다.
strcpy_s(옮길 변수, 공간의 크기, 붙여넣을 문자열) 로 사용되는데
여기서 공간에 크기에 sizeof(포인터)가 들어가면서 문제가 생김
(나는 문자열 공간의 크기를 넣어주었다고 착각)
포인터의 byte 크기 != 문자열 공간의 byte크기이다.
예시)
=> sizeof(포인터가 가르키는 공간)=20byte
=> sizeof(포인터)= 4byte
이 상황에서 sizeof(str)은 20바이트가 아닌 4byte가 됨
문제 해결방법1. 직접 상수를 넣기
문제 해결방법2. strlen을 이용해 길이값 변수 넣기
참고)
https://stackoverflow.com/questions/46994332/strcpy-s-buffer-l-buffer-is-too-small-0
'C언어 기초' 카테고리의 다른 글
[뇌를 자극하는 STL] 1장 . 연산자 오버로딩 (0) | 2023.09.26 |
---|---|
[열혈 C] 도전 프로그래밍2 문제풀이 (0) | 2023.02.08 |
[C언어] switch - goto문 (0) | 2023.02.02 |
chapter 4 : 데이터 표현방식의 이해 (0) | 2022.11.13 |
chapter 3. 변수, 연산자, scanf 함수 (0) | 2022.11.11 |