[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)