Russian Qt Forum
Ноябрь 22, 2024, 19:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: строковые массивы  (Прочитано 6391 раз)
Rostislav
Гость
« : Ноябрь 19, 2004, 04:13 »

*/
CFile myFile;
CFileException fileException;
char* pszFileName = "D:\\1.txt";
if ( !myFile.Open( pszFileName, CFile::modeRead, &fileException ) )
{
    TRACE( "Can't open file %s, error = %u\n",
       pszFileName, fileException.m_cause );
}
int count=0;

int length = (int)myFile.GetLength();
char szBuffer[length];
*/
Проблема такакя: не устанавливается размер массива szBuffer;  
При компиляции выдается:
1)d:\documents and settings\rostislav\мои документы\visual studio projects\client\clientdlg.cpp(199): error C2057: expected constant expression
2)d:\documents and settings\rostislav\мои документы\visual studio projects\client\clientdlg.cpp(199): error C2466: cannot allocate an array of constant size 0
3)d:\documents and settings\rostislav\мои документы\visual studio projects\client\clientdlg.cpp(199): error C2133: 'szBuffer' : unknown size
4)d:\documents and settings\rostislav\мои документы\visual studio projects\client\clientdlg.cpp(215): error C2070: 'char []': illegal sizeof operand

пробывал обьявить переменную "length" как "const int" все равно не компилируется,
зато если  сделать так то все работает: const int length = 10000;
Подскажите что делать???
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #1 : Ноябрь 19, 2004, 12:46 »

насколько я помню VC не поддерживает создание массива во время исполнения

твой код
int length = (int)myFile.GetLength();
char szBuffer[length];

нужно изменить на

char* szBuffer = new char[length];

потом не задудь сделать

delete[] szBuffer;
Записан
Rostislav
Гость
« Ответ #2 : Ноябрь 20, 2004, 02:26 »

Спасибо за ответ, все работает.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 24.