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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Gruba
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 7
11.09.2013, 21:46     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" #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
#pragma once
#include <iostream>
using namespace std;
int **DeleteIndexCol(int **ar,int s1,int &s2,int n)
{
    
    int **big=new int *[s2-1];
 
    for (int i=0;i<(s2-1);i++)
        big[i]=new int[s1];
    
        for(int i=0;i<s1;i++)
        for(int j=0;j<n-1;j++)
            big[i][j]=ar[i][j];
 
    
 
    for(int i=0;i<s1;i++)
        for(int j=n;j<s2;j++)
        big[i][j-1]=ar[i][j];
    
    for(int i=0;i<s1;i++)
        delete []ar[i];
        delete []ar;
    
    s2--;
    return big;
}
На этапе выполнения выдаётся ошибка (шапка темы) на строчке "big[i][j]=ar[i][j];". Есть такая же функция, но по удалению строк, там всё работает. В чём может быть проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2013, 21:46     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd"
Посмотрите здесь:

C++ Необработанное исключение в "0x54a2d2e9 (msvcr100d.dll)" в "3.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc".
C++ Необработанное исключение в "0x00412b4a" в "kursovik.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000004".
Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" C++
Необработанное исключение в "0x775e15de" в "laba3.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfdfdfdf9". C++
C++ Необработанное исключение в "0x01082855" в "sort.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
12.09.2013, 09:28     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" #2
скорее всего происходит запись в память за массивом
AntonChik
1083 / 581 / 21
Регистрация: 11.11.2008
Сообщений: 1,544
12.09.2013, 10:32     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" #3
отловите значения i и j на момент ошибки и пронанализируйте ситуацию
Gruba
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 7
12.09.2013, 17:44  [ТС]     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" #4
если массив 5 на 5, то на момент ошибки i=4, j=0, а если массив 3 на 3, то i=2, j=0. То есть последний элемент первого столбца. Просто странно, вот код функции, в которой удаляется строка, там всё работает:
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
#pragma once
#include <iostream>
using namespace std;
int **DeleteIndexRow(int **ar,int &s1,int s2,int nomer_stroki)
{
    
    int **big=new int *[s1-1];
 
    for (int i=0;i<(s1-1);i++)
        big[i]=new int[s2];
    
        for(int i=0;i<nomer_stroki-1;i++)
        for(int j=0;j<s2;j++)
        big[i][j]=ar[i][j];
 
    
 
    for(int i=nomer_stroki;i<s1;i++)
        for(int j=0;j<s2;j++)
        big[i-1][j]=ar[i][j];
    
    for(int i=0;i<s1;i++)
        delete []ar[i];
        delete []ar;
    
    s1--;
    return big;
}
Добавлено через 2 минуты
Цитата Сообщение от ___ Посмотреть сообщение
скорее всего происходит запись в память за массивом
а можно поподробнее, и как это исправить?
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
12.09.2013, 19:03     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" #5
Цитата Сообщение от Gruba Посмотреть сообщение
а можно поподробнее, и как это исправить?
я не знаю как это исправить
Gruba
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 7
12.09.2013, 19:06  [ТС]     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" #6
Цитата Сообщение от ___ Посмотреть сообщение
я не знаю как это исправить
Эх, жаль...
Ab
75 / 75 / 1
Регистрация: 03.05.2012
Сообщений: 161
12.09.2013, 19:52     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" #7
Цитата Сообщение от Gruba Посмотреть сообщение
если массив 5 на 5, то на момент ошибки i=4, j=0, а если массив 3 на 3, то i=2, j=0
Так ясно же всё, если внимательно на этот кусок кода посмотреть:
C++
1
2
3
4
5
for (int i=0;i<(s2-1);i++)
  big[i]=new int[s1];
for (int i=0;i<s1;i++)
  for (int j=0;j<n-1;j++)
    big[i][j]=ar[i][j];
Если s1=s2=5, то в первом for индекс меняется от 0 до 3, а во втором for при i=4 будет обращение в никуда.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2013, 20:11     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd"
Еще ссылки по теме:

Необработанное исключение в "0x778e15de" в "dir-3.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000" C++
C++ Необработанное исключение в "0x776315de" в "c++1.exe": 0xC0000005: Нарушение прав доступа при записи "0x40e000
C++ Необработанное исключение в "0x104b2288" в "Matrix.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcd

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

Или воспользуйтесь поиском по форуму:
Gruba
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 7
12.09.2013, 20:11  [ТС]     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" #8
Цитата Сообщение от Ab Посмотреть сообщение
Так ясно же всё, если внимательно на этот кусок кода посмотреть:
C++
1
2
3
4
5
for (int i=0;i<(s2-1);i++)
  big[i]=new int[s1];
for (int i=0;i<s1;i++)
  for (int j=0;j<n-1;j++)
    big[i][j]=ar[i][j];
Если s1=s2=5, то в первом for индекс меняется от 0 до 3, а во втором for при i=4 будет обращение в никуда.
огромное спасибо! куда глаза мои всё это время смотрели?!
Yandex
Объявления
12.09.2013, 20:11     Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd"
Ответ Создать тему
Опции темы

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