簡體   English   中英

C分割錯誤:11

[英]C Segmentation Fault: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);
}

我可以發布整個代碼或您認為必要的其他解釋。 我也很感謝您關心的任何意見。

我認為如果directoria為NULL,您仍然會執行closedir (directoria); 這將取消引用空指針並導致段錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM