c언어 문자열 경계 검사에 대한 몇 가지 이야기
입력을 신뢰하면 안 된다. 현실 세계에서는 알고리즘 문제와 같이 제한에 맞춰서 입력이 들어오지 않는다. 이 말은 많이 들어보셨으리라 생각이 듭니다. c언어에서 많은 string 함수, 예를 들어서 strcpy, strcat 같은 것들이 이런 문제를 가지고 있다고 하는데, 무엇일까요? 문자를 5개 저장할 수 있는 배열을 선언했습니다. 문자열은 NULL 문자가 끝에 들어갑니다. 그러면, 길이가 4인 문자열까지는 들어갈 수 있습니다. 예를 들어 "cho"는 길이가 3인 문자열입니다. 그러므로, 들어갈 수 있습니다. 그런데, 이런 경우라면 어떨까요? "chogahui를 넣는다. 길이가 8입니다. 그런데, gets나, strcpy, strcat에 들어가는 정보는 string 배열의 시작 주소일 뿐입니다. 길이 값..
코딩/C
2020. 3. 9. 14:04
최근댓글