Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2014, 19:02   #1
gunsoy
Форумчанин
 
Регистрация: 30.12.2010
Сообщений: 280
Вопрос Segmentation fault (core dumped)

Здравствуйте.

Есть код

Код:
        SeekG += sizeof(int);
        is.seekg(SeekG);
        BonesMartix = new MatrixStruct[BonesMartixSize];
        is.read((char *) BonesMartix[0].matrix, sizeof(float) * 16);
        for(i = 1; i < BonesMartixSize; i++)
        {
            SeekG += sizeof(float) * 16;
            is.seekg(SeekG);
            is.read((char *) BonesMartix[i].matrix, sizeof(float) * 16);
            std::cout << "\nBM: " << i;
        }
        std::cout << "\nBonesMatrixSize: " << BonesMartixSize;
Который раньше работал нормально. Сейчас запускаю программу, программа через несколько секунд завершается и выводит Segmentation fault (core dumped)

Программа у меня считывает данные из файла, цикл отрабатывает полностью, то есть в std::cout << "\nBM: " << i; выводится 80 раз, столько сколько и должно быть. А вот вывод std::cout << "\nBonesMatrixSize: " << BonesMartixSize;, который находится сразу после цикла почему-то не срабатывает.

Никак не могу понять в чём проблема. Подскажите пожалуйста как это можно выяснить?

Спасибо за внимание.
gunsoy вне форума Ответить с цитированием
Старый 16.02.2014, 20:09   #2
gunsoy
Форумчанин
 
Регистрация: 30.12.2010
Сообщений: 280
По умолчанию

Немного поковырялся, перекомпилировал и заработало, а в чём причина я так и не понял.
gunsoy вне форума Ответить с цитированием
Старый 16.02.2014, 20:11   #3
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Покажи определение MatrixStruct
Son Of Pain вне форума Ответить с цитированием
Старый 16.02.2014, 20:51   #4
gunsoy
Форумчанин
 
Регистрация: 30.12.2010
Сообщений: 280
По умолчанию

Там только массив флоатов

Код:
struct MatrixStruct
{
    float matrix[16];
};
gunsoy вне форума Ответить с цитированием
Старый 17.02.2014, 11:07   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Сколько элементов читаем в этой строке: for(i = 1; i < BonesMartixSize; i++) ?

После каждого чтения нет смысла делать seek, если только не надо перепрыгивать через данные.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Segmentation fault Hemul Общие вопросы C/C++ 7 16.08.2011 03:23
qsort - Segmentation fault и другие непонятки FILLIPO Общие вопросы C/C++ 6 05.09.2010 10:57
Vector, Pair и segmentation fault certman Общие вопросы C/C++ 3 25.03.2010 00:24
QT4 segmentation fault jojahti Qt и кроссплатформенное программирование С/С++ 6 06.01.2010 09:57
GCL и segmentation fault. jojahti Свободное общение 0 14.09.2009 19:20