неверный аргумент 1 для ошибки sizeof () в pike - PullRequest
0 голосов
/ 15 мая 2018

Я написал большую программу на щуке, и вдруг она выдает мне ошибку, которой раньше не было:

неверный аргумент 1 для sizeof ().

Кто-нибудь знает проблему? А что я могу сделать? это работало раньше. Вот код:

int main()
{
  string path;
  path=Stdio.Readline()->read("enter a path");   
  add_module_path(path);
  array fileArr=get_dir(path);
  int i=0;
  int j=0;
  while (j != sizeof(fileArr))
  {
    // ... 
  }
}

1 Ответ

0 голосов
/ 15 мая 2018

если указанный путь не существует, то get_dir() вернет 0.

0 является недопустимым аргументом для sizeof().

проверьте соответствующие значения перед их передачей.

самое простое в этом случае:

while (arrayp(fileArr) && j != sizeof(fileArr))

Вы также можете stat() путь, прежде чем передать его на get_dir()

...