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

Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 5.00
Vitalys
Сообщений: n/a
04.10.2012, 18:13     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #1
При выполнении этого кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include<conio.h>
 
using namespace std;
 
int main () {
    int x;
    unsigned int z, y;
    cin>>z>>y;
    int **a=new int*[z];
    for (int i=0; i<z; i++)
        a[i]=new int[y];
    
    for (int i=0; i<z; i++)
        for (int j=0; j<y; j++)
            cin>>a[i][j];
    
    for (int i=0; i<z; i++){
        for (int j=0; j<y; j++)
            if ((i+j)<z)
            {
                x=a[i][j];
                a[i][j]=a[z-1-j][y-1-i];
                a[z-1-j][y-1-i]=x;
                
            }}
 
    for (int i=0; i<z; i++)
    {
        for (int j=0; j<y; j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
    for (int i=0;i<z;i++)
        delete [] a[i];
    delete [] a;
    getch();
    return 0;
}
Выдает следующую ошибку:Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb".
Подскажите, с чем это может быть связано?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2012, 18:13     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb"
Посмотрите здесь:

"Нарушение прав доступа при чтении "0x00000000"" C++
Быстрая сортировка. Нарушение прав доступа при чтении "0xfdfdfdfd" C++
C++ Необработанное исключение в "0x776315de" в "c++1.exe": 0xC0000005: Нарушение прав доступа при записи "0x40e000
Возникает ошибка "0xC0000005: Нарушение прав доступа при чтении "0xfeeefee2"." C++
Перегрузка оператора "++" и "--" в чем может быть причина нарушение прав доступа? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
04.10.2012, 18:17     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #2
C++
1
2
3
4
5
6
if ((i+j)<4)
            {
                x=a[i][j];
                a[i][j]=a[4-j][4-i];
                a[4-j][4-i]=x;        
            }
Очевидно, что вначале 0+0<4, а 4-j и 4-i - это выход за пределы диапазона.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
04.10.2012, 18:18     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #3
Выход за пределы массива. Вот здесь:

Цитата Сообщение от Vitalys Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
for (int i=0; i<z; i++){
* * * * for (int j=0; j<y; j++)
* * * * * * if ((i+j)<4)
* * * * * * {
* * * * * * * * x=a[i][j];
* * * * * * * * a[i][j]=a[4-j][4-i];
* * * * * * * * a[4-j][4-i]=x;
}}
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
04.10.2012, 18:21     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #4
Цитата Сообщение от Vitalys Посмотреть сообщение
a[4-j][4-i]=x;
Скорее всего, здесь. Выход за границы массива.
MeDVeDxf
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 5
07.02.2013, 12:55     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #5
Вставить ник
Новенький


Репутация: 0

Предупреждения:
(0%)
«— информация —»

Господа, очень нужна помощь.
создаю объекты типа пользовательского класса и добавляю их в контейнер "vector". При вызове функции вывода коллекции на экран выходит ошибка:
Необработанное исключение в "0x011f5566" в "Kursovoy.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcccccccc".
Вот собственно описание функции вывода коллекции на экран:
C++
1
2
3
4
5
6
7
8
9
10
void Viewer()
{
    if(collection->size()==0) cout<<"Список пуст"<<endl;
    for (it=collection->begin(); it!=collection->end(); it++)
    {
        
        (*it)->show();
        cout<<endl<<endl;
    }
}
Студия при выводе ошибки указывает на строку -
(*it)->show();

Никак не могу понять где ошибка. Помогите пожалуйста.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.02.2013, 14:17     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #6
MeDVeDxf, как хранятся объекты в векторе? Возможно нужно просто it->show(). Покажите весь код, по этому куску вообще ничего сказать нельзя.
MeDVeDxf
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 5
07.02.2013, 14:22     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
typedef vector<person*> MyCollection;
MyCollection* collection = new MyCollection;
vector<person*>::iterator it;
 
void CreateAdres()
{
    cout<<"<Создание объекта \"адрес персоны\">"<<endl;
    adres ObjectA("Джигурда", 1, "Бердищенск", "Ленина", 30);
    collection->push_back(&ObjectA);
}
 
void CreateEmail()
{
    cout<<"<Создание объекта \"эл. адрес персоны\">"<<endl;
    email ObjectE("Джигурда", 2, "Djigurda@mail.ru");
    collection->push_back(&ObjectE);
}
 
void Viewer()
{
    if(collection->size()==0) cout<<"Список пуст"<<endl;
    for (it=collection->begin(); it!=collection->end(); it++)
    {
        
        (*it)->show();
        cout<<endl<<endl;
    }
}
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.02.2013, 14:25     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #8
MeDVeDxf, Вы пихаете в вектор адрес локальных объектов. После выхода из функций они уничтожаются... Или не используйте указатели, или используйте динамическое выделение памяти.
MeDVeDxf
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 5
07.02.2013, 14:26     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #9
классы объектов тоже надо?
здесь описаны функции создания объектов и добавления их в вектор.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
07.02.2013, 14:31     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #10
нет, тебе уже указали на ошибку
MeDVeDxf
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 5
07.02.2013, 14:34     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #11
Не совсем понял что мне делать... можно немного поподробнее?
как я понял - использование динамического выделения памяти - это использование массива указателей. но мне надо использовать именно вектор. возможно я не так понял...

а что касается указателей, то у меня их вроде нет...
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.02.2013, 14:40     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #12
MeDVeDxf, эту программу вообще Вы писали? Что значит у Вас их нет? А это что по Вашему?
C++
1
2
typedef vector<person*> MyCollection;
MyCollection* collection = new MyCollection;
Вы используете вектор указателей, и плюс ко всему еще и указатель на этот вектор, что в общем то бессмысленно.

Исправляйте на:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
typedef vector< person > MyCollection;
MyCollection collection;
MyCollection::iterator it;
...
collection.push_back( ObjectA );
...
 
if ( collection.size() == 0 ) 
   cout<<"Список пуст"<<endl;
 
for (it=collection.begin(); it!=collection.end(); ++it)
{
   it->show();
   cout<<endl<<endl;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2013, 15:04     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb"
Еще ссылки по теме:

C++ Нарушение прав доступа при чтении "0xcdcdcdcd"
C++ Необработанное исключение в "0x104b2288" в "Matrix.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcd
C++ С++ ошибка 0xC0000005: Нарушение прав доступа при записи "0xcccccccc". Инициализация строк

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

Или воспользуйтесь поиском по форуму:
MeDVeDxf
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 5
07.02.2013, 15:04     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" #13
Благодарю за помощь.
Yandex
Объявления
07.02.2013, 15:04     Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb"
Ответ Создать тему
Опции темы

Текущее время: 00:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru