Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lNORDl
1 / 1 / 0
Регистрация: 23.02.2014
Сообщений: 44
#1

Ошибка при получении vector.size() - C++

24.03.2014, 22:38. Просмотров 577. Ответов 9
Метки нет (Все метки)

Здравствуйте!
Работал-работал и тут не с того не с сего начала вываливаться ошибка:
First-chance exception at 0x00A9AAA9 in Project_alpha_1.0.exe: 0xC0000005: Access violation reading location 0x00000020.
Ошибка возникает когда я вызываю функцию у вектора size(), появляться стала абсолютно непонятно из-за чего, так как все что связано с обработкой этого массива я не трогал, может знает кто, что за хрень?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2014, 22:38     Ошибка при получении vector.size()
Посмотрите здесь:

Вызов size контейнера vector при его передаче в функцию по ссылке - C++
Как по-правильному вызвать size контейнера vector, если он передаётся в функцию по ссылке? Можно, конечно, передать размер как отдельный...

Vector size - выражение должно иметь тип указателя - C++
vector <planet_Struct> planet_map; int ywf = planet_map->size int ywf = planet_map->size; Подчеркивает красным planet_map и говорит,...

Ошибка при повторном получении данных из потока cin - C++
Добрый день, уважаемые форумчане. Делал учебную задачу и столкнулся с проблемой, которую затрудняюсь сам решить. Задача...

Непонятная ошибка при работе с vector - C++
Здравствуйте! Что делает программа: Определить, сколько раз в заданном предложении встречаются 3 одинаковых символа подряд (учитываем,...

Ошибка при использовании vector<bool> - C++
Текст ошибки (Visual studio 2013): Ошибка 2 error C2440: return: невозможно преобразовать...

Ошибка исполнения при записи в vector - C++
Вылетает при воде первой строки. Не пойму почему? #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;sstream&gt; #include &lt;fstream&gt; ...

Ошибка компиляции при включении #include <vector> - C++
Есть контейнер, идентичный std::vector Его код в vvector_vbase.h Если не включать в code.cpp #include &lt;vector&gt; программа...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.03.2014, 22:42     Ошибка при получении vector.size() #2
Код нужен.
lNORDl
1 / 1 / 0
Регистрация: 23.02.2014
Сообщений: 44
24.03.2014, 22:47  [ТС]     Ошибка при получении vector.size() #3
Код чего? Вызова функции size()? )))
Croessmah
Модератор
Эксперт CЭксперт С++
13045 / 7308 / 814
Регистрация: 27.09.2012
Сообщений: 18,041
Записей в блоге: 3
Завершенные тесты: 1
24.03.2014, 22:49     Ошибка при получении vector.size() #4
Цитата Сообщение от lNORDl Посмотреть сообщение
Код чего?
домофона!
lNORDl
1 / 1 / 0
Регистрация: 23.02.2014
Сообщений: 44
24.03.2014, 22:51  [ТС]     Ошибка при получении vector.size() #5
Сорь, но я просто щас дико зол только 3 часа кодинга принесли плоды, уже готов гордо закрыть IDE и тут....
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int Universe::indexInObjects(BasicObject* object)
{
    int n = -1;
    int l = _objects.size();
    for (int i = 0; i < l; i++)
    {
        if (_objects.at(i) == object)
        {
            n = i;
            break;
        }
    }
 
    return n;
}
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
24.03.2014, 22:51     Ошибка при получении vector.size() #6
Цитата Сообщение от lNORDl Посмотреть сообщение
может знает кто, что за хрень?
Расстрел памяти.
lNORDl
1 / 1 / 0
Регистрация: 23.02.2014
Сообщений: 44
24.03.2014, 22:52  [ТС]     Ошибка при получении vector.size() #7
Но тут ошибки быть не может не чего не трогал с момента написания 1 раз.

Добавлено через 28 секунд
Что за расстрел?
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
24.03.2014, 22:58     Ошибка при получении vector.size() #8
lNORDl, запись в память объекта(ов) несанкционированным способом. Например, простейший случай, запись за границей массива. Если память, в которую пишем, принадлежит другому объекту, то его поведение после этого может быть непредсказуемо. Отсюда твое непонятное поведение в рабочем коде. Где-то в другом месте программы произошел расстрел, теперь содержимое внутренних данных вектора неконсистентно. Для того, чтобы это отловить нужен весь код.
lNORDl
1 / 1 / 0
Регистрация: 23.02.2014
Сообщений: 44
24.03.2014, 23:22  [ТС]     Ошибка при получении vector.size() #9
хм, а можно блиц вопрос возможно из-за этого:
Класс Б унаследован от А, при вызове delete Б вызывается функция ~Б(), из этой фунции надо вызывать A::~A()?

Добавлено через 14 минут
Все, проблему решил, по крайней мере надеюсь)) из деструкторов убрал вызов деструктора родителя, получается что функция удаления объекта из массива вызывалась как-бы 2 раза причем второй раз сам объект уже был delete, вообщем действительно наверное там память вывернуло, обнаружил при пошаговой отладке.
Всем Спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2014, 23:24     Ошибка при получении vector.size()
Еще ссылки по теме:

Ошибка при использовании vector в заголовке функции - C++
/home/motoroller/qtProjects/laba1/main.cpp:8: ошибка: 'std::vector' is not a type bool extract_class_head(string str, std::vector...

Непонятная ошибка при вызове std::vector::resize - C++
Недавно заметил непонятную ошибку при вызове метода resize(); Я так и не понял как правильно создавать таблицы с динамически...

Ошибка при использовании erase для std::vector - C++
Почему в случае удаления элемента из вектора с помощью передачи итератора в erase, который соответствует позиции удаляемого элемента...

Ошибка при компиляции "Size of the type 'char[]' is unknown or zero" - C++
При компиляции, появляется ошибка: Unit1.cpp(15): E2453 Size of the type 'char' is unknown or zero Помогите исправить. Вот текст...

При разыменовании содержимого контейнера vector<string*> возникает ошибка - C++
Добрый день и с Новым Годом, господа! Обращаюсь к вам со странной проблемой - вылетает при попытке взять значение по адресу. имеются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
24.03.2014, 23:24     Ошибка при получении vector.size() #10
Цитата Сообщение от lNORDl Посмотреть сообщение
Класс Б унаследован от А, при вызове delete Б вызывается функция ~Б(), из этой фунции надо вызывать A::~A()?
Вручную? Не надо Вижу что ты и сам это понял, но я подтверждаю.
Yandex
Объявления
24.03.2014, 23:24     Ошибка при получении vector.size()
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru