여기서 일어나는 일에 대해 상당히 혼란스러워합니다.C char 포인터 동적 할당 - 알 수없는 길이의 값 할당
while ((ent = readdir(dir)) != NULL)
{
char *name = ent -> d_name;
....
}
이것은 디렉토리를 검색하는 데 필요한 일부 기본 코드입니다. 공정하다. 하지만 어떻게 컴파일러가 ent -> d_name의 크기를 결정할 수 있기 때문에이 컴파일 방법을 이해할 수 없습니까? 아무도 그것을 컴파일 할 때 알지 못한다. 그리고 그걸 위해 메모리를 할당해야한다. 그렇지? 컴파일러가 자동으로 malloc()을 사용하여이 작업을 수행하고 있습니까? 우분투에서 GCC를 사용하고 있습니다.
미리 감사드립니다.