![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 30.12.2010
Сообщений: 280
|
![]()
Здравствуйте.
Использую большое количество операций new delete, в общем программа работает (с небольшим количеством объектов), но при увеличении количества объектов (классов) с которыми работает программа, происходит segmentation fault. Проблема в простреле памяти как мне подсказали. Если я полностью заменю new delete на std::vector поможет ли мне это? |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
А ты хоть спросил что это означает?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 30.12.2010
Сообщений: 280
|
![]()
Тут прочитал
http://stackoverflow.com/questions/1...a-memory-stomp В общем одни данные перекрывают другие данные. В моём случае простреливает тот участок памяти где находиться код. Например Код:
|
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Чтот мне слабо верится, что обычное распределение в куче даст "прострелы".
Я бы вообще-то эту проблему назвал как переполнение стека, ну да ладно. ИМХО проблема не в распределении памяти, как ты решил, а в том, как ты ее используешь. Так то конечно STL поудобнее будет, но не факт что решит твою проблему.
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 30.12.2010
Сообщений: 280
|
![]() Цитата:
Вот код выделения памяти для Вершин модели (кроме вершин в программе точно также выделяется память для текстурных координат, весов, костей и индексов всего этого) Код:
|
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
std::vector поможет в освобождении памяти, если эта проблема связанна с этим. Но он не поможет, если Вы где-то выходите за границу выделенной памяти.
Считаю, что нужно найти место, в котором происходит segmentation fault, тогда и станет все понятно. Цитата:
Я вот только не понял, какое отношение выделение памяти имеет к стеку? Мы же не в стеке выделяем ее.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Stilet; 12.07.2015 в 16:35. |
|
![]() |
![]() |
![]() |
#7 | ||
Форумчанин
Регистрация: 30.12.2010
Сообщений: 280
|
![]() Цитата:
После того как выделяю память, помещаю данные в VBO VAO, то есть в память видеокарты и сразу же удаляю delete [] Vertices; Вот и всё использование. Прочитал про выход за пределы стека. До этого стек для меня был обычным массивом. Цитата:
Последний раз редактировалось Stilet; 13.07.2015 в 08:11. |
||
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
Когда программа запущенна под отладчиком и в ходе выполнения произошло какое-то исключение, то у меня IDE показывает это место и выбивает ошибку следующего содержимого:
error.png Такую ошибку получаю, если выполняю этот код: Код:
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Ну правильно, это запись в неправильный адрес.
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
Ну так отладчик же должен показывать все исключения? Или я ошибаюсь?
Это я привел пример с Qt Creator'a.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Памяти | VladimirAvakov | Общие вопросы C/C++ | 0 | 28.05.2014 23:01 |
Задача-найти объем оперативной памяти по шестнадцатеричному адресу последнего байта оперативной памяти | Ksana Alex | Помощь студентам | 4 | 14.11.2013 15:51 |
Распределение памяти. Динамическое выделение памяти с++ | Tolian92 | Помощь студентам | 8 | 14.05.2012 21:44 |
Программа для тестирования памяти, тестирование ячеек памяти | Hunter557 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 30.01.2011 19:20 |
Кольцевая очередь на массиве в статической памяти с элементами в динамической памяти | ]tach[ | Общие вопросы C/C++ | 1 | 19.01.2011 13:16 |