Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Вызов 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++
Подскажите в чем может быть проблема? На 1 принтскрине обычный "Hello world" работает нормально. (принтскрин 2) Дальше хочу...

Ошибка [Linker error] undefined reference to `Vector::Vector(int)' - C++
Добрый день. Делал по методички, и почему-то валятся ошибки... файл lab9_main.cpp #include <iostream> #include "Vector.h" int...

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

9
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.03.2014, 22:42 #2
Код нужен.
0
lNORDl
1 / 1 / 0
Регистрация: 23.02.2014
Сообщений: 44
24.03.2014, 22:47  [ТС] #3
Код чего? Вызова функции size()? )))
0
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
24.03.2014, 22:49 #4
Цитата Сообщение от lNORDl Посмотреть сообщение
Код чего?
домофона!
0
lNORDl
1 / 1 / 0
Регистрация: 23.02.2014
Сообщений: 44
24.03.2014, 22:51  [ТС] #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;
}
0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
24.03.2014, 22:51 #6
Цитата Сообщение от lNORDl Посмотреть сообщение
может знает кто, что за хрень?
Расстрел памяти.
1
lNORDl
1 / 1 / 0
Регистрация: 23.02.2014
Сообщений: 44
24.03.2014, 22:52  [ТС] #7
Но тут ошибки быть не может не чего не трогал с момента написания 1 раз.

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

Добавлено через 14 минут
Все, проблему решил, по крайней мере надеюсь)) из деструкторов убрал вызов деструктора родителя, получается что функция удаления объекта из массива вызывалась как-бы 2 раза причем второй раз сам объект уже был delete, вообщем действительно наверное там память вывернуло, обнаружил при пошаговой отладке.
Всем Спасибо!
0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
24.03.2014, 23:24 #10
Цитата Сообщение от lNORDl Посмотреть сообщение
Класс Б унаследован от А, при вызове delete Б вызывается функция ~Б(), из этой фунции надо вызывать A::~A()?
Вручную? Не надо Вижу что ты и сам это понял, но я подтверждаю.
1
24.03.2014, 23:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2014, 23:24
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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