Название: строковые массивы Отправлено: 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 от Ноябрь 19, 2004, 12:46 насколько я помню VC не поддерживает создание массива во время исполнения
твой код int length = (int)myFile.GetLength(); char szBuffer[length]; нужно изменить на char* szBuffer = new char[length]; потом не задудь сделать delete[] szBuffer; Название: строковые массивы Отправлено: Rostislav от Ноябрь 20, 2004, 02:26 Спасибо за ответ, все работает.
|