1

我在 pike 中写了一个大程序,突然它给了我一个以前没有给我的错误:

sizeof() 的错误参数 1。

有人知道问题吗?我能做些什么?它以前工作过。那是代码:

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))
  {
    // ... 
  }
}
4

1 回答 1

1

如果给定路径不存在,则get_dir()返回0.

0是 的无效参数sizeof()

在传递它们之前检查相关值。

在这种情况下最简单:

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

您也可以stat()在将路径传递给之前get_dir()

于 2018-05-15T18:48:22.463 回答