Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
lNORDl
2 / 2 / 2
Регистрация: 23.02.2014
Сообщений: 44
1

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

24.03.2014, 22:38. Просмотров 849. Ответов 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
Ответы с готовыми решениями:

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

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

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

Ошибка при использовании vector (в конце, после вывода результатов выскакивает ошибка, но сам результат коректен)
Суть в следующем, мы считываем введеные значения и выводим этот массив ...

Ошибка при vector
Подскажите в чем может быть проблема? На 1 принтскрине обычный "Hello world" ...

9
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.03.2014, 22:42 2
Код нужен.
0
lNORDl
2 / 2 / 2
Регистрация: 23.02.2014
Сообщений: 44
24.03.2014, 22:47  [ТС] 3
Код чего? Вызова функции size()? )))
0
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,803
Записей в блоге: 2
Завершенные тесты: 1
24.03.2014, 22:49 4
Цитата Сообщение от lNORDl Посмотреть сообщение
Код чего?
домофона!
0
lNORDl
2 / 2 / 2
Регистрация: 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
9014 / 4861 / 1196
Регистрация: 30.01.2014
Сообщений: 7,942
24.03.2014, 22:51 6
Цитата Сообщение от lNORDl Посмотреть сообщение
может знает кто, что за хрень?
Расстрел памяти.
1
lNORDl
2 / 2 / 2
Регистрация: 23.02.2014
Сообщений: 44
24.03.2014, 22:52  [ТС] 7
Но тут ошибки быть не может не чего не трогал с момента написания 1 раз.

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

Добавлено через 14 минут
Все, проблему решил, по крайней мере надеюсь)) из деструкторов убрал вызов деструктора родителя, получается что функция удаления объекта из массива вызывалась как-бы 2 раза причем второй раз сам объект уже был delete, вообщем действительно наверное там память вывернуло, обнаружил при пошаговой отладке.
Всем Спасибо!
0
DrOffset
9014 / 4861 / 1196
Регистрация: 30.01.2014
Сообщений: 7,942
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

Ошибка [Linker error] undefined reference to `Vector::Vector(int)'
Добрый день. Делал по методички, и почему-то валятся ошибки... файл...

Ошибка: Out of range при использовании <vector>
void quicksort() { long long arrsize; cout &lt;&lt; &quot;Enter amount of number&gt; &quot;;...

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


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

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

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