[17:33:59] <jordan36957> Что то тихо тут у вас
[17:38:08] <jordan36957> Чёт не могу понять, когда возвращаешь указатель из функции всё работает. Но когда присваеваешь указатель как аргумент, нифига. И я чёт застопорился))) Почитал адресную арифметику, и не пойму в чём дело.
[17:38:11] <jordan36957> 
bool std_dir_open(const char * path, std_dir * dst)
{
  std_dir * p = (std_dir*)malloc(sizeof(std_dir));
  
  assert(p);
  
  p->file = FindFirstFile(path, &p->data);
  if (p->file == INVALID_HANDLE_VALUE)
  {
    free(p);
    return FALSE;
  }
  
  dst = p;
  
  return TRUE;
}
[17:38:38] <jordan36957> цель что бы dst содержал адрес на p
[17:38:43] <jordan36957> Юзаю так
[17:39:01] <jordan36957> 
int main(void)
{
  std_dir * f = NULL;
  
  if (std_dir_open("*.*", f))
  {
    printf("%p\n", f);
    while (std_dir_read(f))
    {
      printf("%s\n", std_dir_name(f));
    }
  }
  else
  {
    printf("%s\n", "Not found");
  }
  
  return 0;
}
[17:39:28] <jordan36957> f постоянно ноль
[18:03:04] <NEW> FindFirstFile(path, &p->data);
[18:03:19] <NEW> в p->data должен быть результат?
[18:03:30] <NEW> а амперсанд всё дело не портит?
[18:03:45] <NEW> туда не указатель передавать надо?
[18:07:34] <NEW> я тут посмотрел документацию, std_dir не нашёл.
[18:07:41] <NEW> какое оно?
[18:10:04] <NEW> или попробовать хотя бы так: &(p->data)