문제를 풀던 중 헷갈렸던 부분이 있어서 정리한다.
strcpy_s함수를 사용하던 중 문제가 발생했다.
왜 안 되는지 예제와 비교하여 확인해보았다. str을 포인터로 선언했고 예제에서는 배열로 선언했다는 점이 유일하게 달랐다. 실제로 배열로 선언해서 실행하니 프로그램이 원활하게 돌아갔다.
이유를 생각해보니 이전에 포인터에서 공부했던 내용과 연관시킬 수 있었다. 포인터로 선언한 문자열은 변환할 수 없고, 배열로 선언한 문자열은 변환할 수 있다. 이를 떠올리니 왜 실행이 되지 않았는지 이해했다. strcpy는 문자열을 변환하는 함수이므로 포인터 형식의 문자열을 사용할 수 없다. 그걸 까먹고 sizeof 연산자의 문제인지 한참 헤메고 있었다. 하하하.
'기초공부 > C' 카테고리의 다른 글
[C]자료형과 printf, scanf 서식 정리 (0) | 2019.10.05 |
---|---|
[C]상수형태의 문자열을 매개변수로 전달할 때 (0) | 2019.06.27 |
[C]문자열의 길이를 체크할 땐 strlen 함수를 사용하자 (0) | 2019.06.27 |
[C]printf %c, %s 서식의 차이점 (0) | 2019.06.27 |