私はここで何が起こるかについてかなり混乱しています。
while ( (ent = readdir(dir)) != NULL)
{
char *name = ent -> d_name;
....
}
これは、ディレクトリをスキャンするための基本的なコードです。けっこうだ。しかし、これがどのようにコンパイルされるのか理解できません。なぜなら、コンパイラは ent -> d_name のサイズをどのように決定できるのでしょうか? コンパイル時には誰もそれを知りません。そのためにメモリを割り当てる必要があります。コンパイラはこれを自動的に malloc() していますか、それとも何ですか? 関連する場合、UbuntuでGCCを使用しています。
前もって感謝します。