반응형
a 배열에 test를 넣으면 a의 사이즈는 자동으로 5가 된다.
이유는 끝에 \0이 들어가기 때문이다.
t | e | s | t | \0 |
strlen은 \0을 제외하고 string 크기만 찾아준다.
결과는 4가 나온다.
컴파일 했을때 오류는 안뜬다.
하지만 실행시키고 test라는 문자를 입력하자마자 오류가 뜬다.
왜냐하면 a배열의 사이즈를 지정을 안해줬기 때문에 버퍼의 크기가 0이라 오류가 뜬다.
사이즈를 5로 지정해주면 정상적으로 값이 나온다.
t | e | s | t | \0 |
만약 사이즈를 4로 지정해주면 버퍼가 작다고 오류가 뜬다.
왜냐하면 끝에 \0 이 들어갈 자리가 없기 때문이다.
반응형
'<Programming> > <C>' 카테고리의 다른 글
[C언어] strtok 함수 (0) | 2020.07.16 |
---|---|
[C언어] void가 아닌 함수에서의 반환 값 (0) | 2020.07.10 |
[C언어] 버블정렬 (0) | 2020.07.07 |
[C언어] 문자열의 길이를 구해서 출력 | scanf와 gets_s 차이점 (0) | 2020.07.06 |
[C언어][수식과 연산자] 100보다작은 정수를 입력받아 십의자리, 일의자리 분리 (0) | 2020.07.05 |