strlen
은 종료 널 문자 앞에 오는 문자 수를 반환합니다. strlen
의 구현은 다음과 같습니다이 특정 구현 s
불확정 값을 포함 할 수 s
를 역 참조초기화되지 않은 값이있는 문자열의 strlen은 정의되지 않은 동작입니까?
size_t strlen(const char * str)
{
const char *s;
for (s = str; *s; ++s) {}
return(s - str);
}
. 그것은이 동등의 하나가 있다면
int a;
int* p = &a;
*p;
그래서 예를 들어이 (strlen
를 일으키는 잘못된 출력을 제공하기 위해) 할 :
char buffer[10];
buffer[9] = '\0';
strlen(buffer);
가 정의되지 않은 동작인가?
@ user2864740 문자열에 * 값을 입력해야합니까? C가 읽기 전에 쓰기에 행복하게 충돌 할 수 있습니까? – kay