что передать в аргумент char *&

Картежник
Дата: 18.03.2015 11:32:23
есть функция
bool __fastcall BrowseFolder(const char *label, char *&file_name, char *prevpath = 0);

что передать во второй параметр чтобы не выходило ошибки?
во втором параметре я должен буду получить путь к файлу.
например
char fname[260];

как мне во второй аргумент функции передать fname?
Dima T
Дата: 18.03.2015 12:09:23
char fname[260];
char* p = fname;
BrowseFolder(..., p, ...);

fname туда нельзя передать, т.к. там ожидается указатель, а fname у тебя массив.
Dima T
Дата: 18.03.2015 12:12:24
Если там внутри память выделяется (скорее всего так, читай описаловку), то
char* p = NULL;
BrowseFolder(..., p, ...);
if(p) {
  puts(p); // работаем с p
  free(p); // освобождаем память
}
Картежник
Дата: 18.03.2015 12:40:34
Dima T
Если там внутри память выделяется (скорее всего так, читай описаловку), то

внутри вот что делается
 char f_name[MAX_PATH];
   SHGetPathFromIDList(iidl, f_name);
   file_name = new char[strlen(f_name) + 1];
   strcpy(file_name, f_name);
Dima T
Дата: 18.03.2015 13:03:06
Тогда так
char* p = NULL;
BrowseFolder(..., p, ...);
if(p) {
  puts(p); // работаем с p
  delete[] p; // освобождаем память
}