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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ошибка Segmentation Fault  (Прочитано 2439 раз)
Laikki
Гость
« : Ноябрь 26, 2012, 11:17 »

Доброго времени суток. Подскажите пожалуйста, в чем причина.
Есть кусок кода
Код:
    QFile file("Questions.dat");
    file.open(QIODevice::ReadOnly);
    QDataStream ds(&file);
    char* qa;
    ds.readRawData(qa,25);
    file.close();
Вылетает с ошибкой Segmentation Fault на строчке ds.readRawData(qa,25); Опробовано на двух системах - Windows 8 x64, библиотека 4.7.4, антивирус встроенный и Windows 7 x64, библиотека 4.8.3 и антивируса вообще нет.

Поэкспериментировал, если читать 1-24 байт, то ошибки нет, 25 и выше - всегда ошибка. Но читаю к примеру 10 символов, выдает 123456790 и иероглиф в конце, полный рандом получился, указываю например семь байт - результат нормальный, указываю восемь, уже лишние данные в конце.

Заранее спасибо за помощь
« Последнее редактирование: Ноябрь 26, 2012, 11:20 от Laikki » Записан
mutineer
Гость
« Ответ #1 : Ноябрь 26, 2012, 11:23 »

qa указывает непойми куда, возможно что в невыделенную память, а ты туда данные пишешь. Вот и вылетает
Записан
Vass
Гость
« Ответ #2 : Ноябрь 26, 2012, 12:34 »

Код:
char* qa =  new char[25];
если планируется эти данные потом куда-то выводить как строку, то делать массив на один символ больше и писать в конец ноль не забывать.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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