2013-12-09 93 views
0

我收到分段錯誤:11時使用引入導致了這部分代碼的參數:Ç段錯誤:11

else 
{ 
    directoria = opendir (argv[2]); 
    if (directoria == NULL) 
    { 
     printf ("Não foi possível abrir a directoria '%s' ou esta não contém ficheiros.\n", argv[2]); 
    } 
    else 
    { 
     while ((ficheiro = readdir (directoria)) != NULL) 
    { 
     sprintf(guardar, "%s/%s", argv[2], ficheiro->d_name); 
     stat (guardar, &dados); 
     printf ("%7d", dados.st_size); 
     tempbon = dados.st_mtime; 
     t = localtime (&tempbon); 
     strftime(tempo, 80, "%b %d %H:%M", t); 
     printf (" %s", tempo); 
     printf (" %s\n", ficheiro -> d_name); 
    } 
    } 
    closedir (directoria); 
} 

我可以張貼整個代碼或任何其他的解釋你認爲有必要。我感謝您提供的任何輸入。

回答

1

我想如果directoria爲NULL,你仍然會執行closedir (directoria);這將解引用空指針並導致段錯誤。

+0

是的,這是訣竅。謝謝! – FranciscoS

+0

很高興聽到它!別客氣! – qwwqwwq