Подскажите пожалуйста как правильно объявить FILE
От: Voland_SZ Россия  
Дата: 23.06.03 20:39
Оценка:
FILE *RecFiles = new FILE[NoOfFiles];

if((RecFiles[i] = fopen(FullName,"w+"))==NULL) MessageBox(NULL,"ERROR","ERROR",MB_OK);
и на него ругается fopen что ему надо FILE а не FILE*

вот так естественно тоже не срабатывает
if((&RecFiles[i] = fopen(FullName,"w+"))==NULL) MessageBox(NULL,"ERROR","ERROR",MB_OK);



Зачем мне это все надо
Хочу задавать произвольное количество файлов

24.06.03 04:41: Перенесено модератором из 'WIN API' — вопрос по С++ (вроде) — H_D
Re: Подскажите пожалуйста как правильно объявить FILE
От: folk Россия  
Дата: 23.06.03 23:11
Оценка:
Здравствуйте, Voland_SZ, Вы писали:

V_S>FILE *RecFiles = new FILE[NoOfFiles];


V_S>if((RecFiles[i] = fopen(FullName,"w+"))==NULL) MessageBox(NULL,"ERROR","ERROR",MB_OK);

V_S>и на него ругается fopen что ему надо FILE а не FILE*

V_S>вот так естественно тоже не срабатывает

V_S>if((&RecFiles[i] = fopen(FullName,"w+"))==NULL) MessageBox(NULL,"ERROR","ERROR",MB_OK);

V_S>Зачем мне это все надо

V_S>Хочу задавать произвольное количество файлов

Не нужно выделять место под FILE, это забота библиотеки. fopen возвращает указатель на уже созданный FILE :

FILE **RecFiles = new (FILE*)[NoOfFiles];
if((RecFiles[i] = fopen(FullName,"w+"))==NULL)
   MessageBox(NULL,"ERROR","ERROR",MB_OK);
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Re[2]: Подскажите пожалуйста как правильно объявить FILE
От: Voland_SZ Россия  
Дата: 24.06.03 20:03
Оценка:
Здравствуйте, folk, Вы писали:

F>Здравствуйте, Voland_SZ, Вы писали:


V_S>>FILE *RecFiles = new FILE[NoOfFiles];


V_S>>if((RecFiles[i] = fopen(FullName,"w+"))==NULL) MessageBox(NULL,"ERROR","ERROR",MB_OK);

V_S>>и на него ругается fopen что ему надо FILE а не FILE*

V_S>>вот так естественно тоже не срабатывает

V_S>>if((&RecFiles[i] = fopen(FullName,"w+"))==NULL) MessageBox(NULL,"ERROR","ERROR",MB_OK);

V_S>>Зачем мне это все надо

V_S>>Хочу задавать произвольное количество файлов

F>Не нужно выделять место под FILE, это забота библиотеки. fopen возвращает указатель на уже созданный FILE :


F>
F>FILE **RecFiles = new (FILE*)[NoOfFiles];
F>if((RecFiles[i] = fopen(FullName,"w+"))==NULL)
F>   MessageBox(NULL,"ERROR","ERROR",MB_OK);
F>


Спасибо большое, но можно еще вопрос
а что означает определение переменной с **
одна это указатель, а две это что?
Re[3]: Подскажите пожалуйста как правильно объявить FILE
От: folk Россия  
Дата: 24.06.03 21:45
Оценка:
Здравствуйте, Voland_SZ, Вы писали:

F>>
F>>FILE **RecFiles = new (FILE*)[NoOfFiles];
F>>if((RecFiles[i] = fopen(FullName,"w+"))==NULL)
F>>   MessageBox(NULL,"ERROR","ERROR",MB_OK);
F>>


V_S>Спасибо большое, но можно еще вопрос

V_S>а что означает определение переменной с **
V_S>одна это указатель, а две это что?

FILE* — указатель на FILE
FILE** — указатель на указатель на FILE
и т.д.

В этом случае мы создаем массив с элементами типа FILE*, а указатель на этот массив (или на любой элемент массива) имеет тип FILE** .
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Re[4]: Подскажите пожалуйста как правильно объявить FILE
От: Voland_SZ Россия  
Дата: 25.06.03 05:44
Оценка:
Здравствуйте, folk, Вы писали:

F>Здравствуйте, Voland_SZ, Вы писали:


F>>>
F>>>FILE **RecFiles = new (FILE*)[NoOfFiles];
F>>>if((RecFiles[i] = fopen(FullName,"w+"))==NULL)
F>>>   MessageBox(NULL,"ERROR","ERROR",MB_OK);
F>>>


V_S>>Спасибо большое, но можно еще вопрос

V_S>>а что означает определение переменной с **
V_S>>одна это указатель, а две это что?

F>FILE* — указатель на FILE

F>FILE** — указатель на указатель на FILE
F>и т.д.

F>В этом случае мы создаем массив с элементами типа FILE*, а указатель на этот массив (или на любой элемент массива) имеет тип FILE**



Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.