|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 9
|
||||||
Шаблоны классов, list (STL)18.07.2016, 16:53. Показов 1917. Ответов 16
Метки нет (Все метки)
Здравствуйте, столкнулся с проблемой, что при повторном выполнении цикла генерируется исключение "access violation", в чем может быть причина?
Пользуюсь Embarcadero RAD Studio XE7
0
|
||||||
| 18.07.2016, 16:53 | |
|
Ответы с готовыми решениями:
16
List (STL) не пользуется конструкторами копий базовых классов Работа с STL list + пропись List.h
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 18.07.2016, 18:20 | |
|
Для чего в AClass список элементов AClass?
new убери.
0
|
|
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 9
|
|
| 18.07.2016, 18:29 [ТС] | |
|
Если AClass приводить к чему-то более жизненному, то объект данного класса может являться узлом графа, а a_list будет хранить в себе узлы, на которые будет указывать данный объект (узел).
Удаление new не помогло
0
|
|
|
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
|
||||||
| 18.07.2016, 19:21 | ||||||
|
PG,
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 9
|
|
| 18.07.2016, 19:26 [ТС] | |
|
Такая же ошибка
0
|
|
|
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
|
|
| 18.07.2016, 19:28 | |
|
PG, просто у меня ваш первоначальный код не выкидывает ошибок. Ошибка во времени выполнения появляется тогда, когда вы второй раз повторяете цикл?
0
|
|
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 9
|
|
| 18.07.2016, 19:32 [ТС] | |
|
Пробовал запустить данный код в Qt под Linux все прекрасно работает. А вот на Win10 в Embarсadero появляется ошибка)
Да, когда второй раз цикл выполняю)
0
|
|
|
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
|
||||||
| 18.07.2016, 19:35 | ||||||
|
PG, main надо изменить:
1
|
||||||
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 9
|
|
| 18.07.2016, 19:37 [ТС] | |
|
Понимаю, в этом и вопрос, что при повторном создании возникает ошибка, что не позволительно
0
|
|
|
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
|
|
| 18.07.2016, 19:42 | |
|
PG, хм, ума не приложу, почему возникает ошибка. Windows 10 VS2015 все работает отлично.
0
|
|
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 9
|
|
| 18.07.2016, 19:43 [ТС] | |
|
Возможно дело в компиляторе, который я использую
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 18.07.2016, 19:55 | |
|
Текст ошибки какой?
0
|
|
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 9
|
|
| 19.07.2016, 02:42 [ТС] | |
|
Такое исключение возникает: "access violation at 0x004029d7: read of address 0x00000000".
Добавлено через 6 часов 11 минут Выяснил еще одну интересную вещь, что при создании глобального объекта класса AClass (например AClass<int> Temp выше функции main) проект перестает компилироваться и появляется такая ошибка: "[bcc32 Error] xmemory(44): E2125 Compiler could not generate default destructor for class '_List_nod<AClass<int>,allocator<AClass< int> > >::_Node'".
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||
| 19.07.2016, 12:23 | |||||||||||||||||
Сообщение было отмечено PG как решение
Решение
вторая проблема:
несмотря на то, что это работает в современных версиях стандартной библиотеки, тем не менее, стандарт не гарантирует этого. у вас циклическая зависимость класса-хозяина от своих детей. проблема заключается в том, что у вас в данных-членах фигурирует тип класса-хозяина. что бы построить класс, нужно построить все его детей, но посльку ребенок такого же типа, то что бы его построить нужно построить всех его детей, но поскольку ребенок такого же типа... в современной стандартной библиотеке это прокатывает, потому что в потрохах std::list используются ссылки/указатели вместо "типов по значению". но стандарт не гарантирует этого, и не накладывает здесь никаких ограничений. вполне возможно, что версия библиотеки от вашего компилятора где то инстанцирует нечто, что требует знание полного строения класса, отсюда и проблемы с диструктором, и может быть какие то глюки. попробуйте сделать так:
1
|
|||||||||||||||||
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 9
|
|
| 19.07.2016, 12:28 [ТС] | |
|
Так пробовал, работает, спасибо огромное за ответ!
Не могли бы еще пояснить термин "UB"?
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 19.07.2016, 12:33 | ||
|
("неопределенное поведение") это - последствия ущербного некорректного кода. означает, что раз вы написали некорректный код, то вам больше никто ничего не гарантирует, и произойти может все что угодно. может быть будет работать. может быть не будет. может быть будет в зависимости от фазы луны. а может быть компилятор вам открытку по почте пришлет.
1
|
||
|
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 9
|
|
| 19.07.2016, 12:37 [ТС] | |
|
Понял, еще раз спасибо!
0
|
|
| 19.07.2016, 12:37 | |
|
Помогаю со студенческими работами здесь
17
Шаблоны STL Шаблоны классов (умножение классов)
List STL STL list Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
|