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

Необработанное исключение: нарушение прав доступа при записи - C++

Восстановить пароль Регистрация
 
volk
1 / 1 / 0
Регистрация: 22.05.2014
Сообщений: 15
04.06.2014, 05:03     Необработанное исключение: нарушение прав доступа при записи #1
Есть функция ввода текста. Текст с неизвестным количеством и длиной строк.
При отладке прерывается и выдает:
"Необработанное исключение в "0x012d107b" в "Курсач1.exe": 0xC0000005: Нарушение прав доступа при записи "0xbaadf00d"."
Как я понял проблемы с выделением. Заранее благодарен

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
char **text(char *razd)     //ввод текста
{
    char **txt;
    int **Len;
    bool p;
    int j=-1;
    int i=0;
    int n=0;
    int frazd;
    int L;
    int s;
    txt = NULL;
    
    txt = (char**)malloc((i+1)* sizeof(char*)); //выделяем память под массив указателей на строки - i штук
    cout << "Введите текст:\n";
    do
    {    
        frazd=0;
        j++;
        txt[i][j]=getche();
        txt[j]=(char*)realloc(txt[j],(i+1)*sizeof(int)); // в этом месте при отладке прерывается
        
        s=-1;
        for (s=0; razd[s]!='\0'; s++) 
        {
            if (txt[i][j]==razd[s])
                frazd=1;
        };
    
        usl(razd, txt, i,j, frazd, Len, n, L);
    
    } while (p=true);
        
    return (txt);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 05:03     Необработанное исключение: нарушение прав доступа при записи
Посмотрите здесь:

Необработанное исключение нарушение прав доступа C++
C++ Необработанное исключение. Нарушение прав доступа при чтении
C++ Необработанное исключение по адресу 0x00ED4891 в strings.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCCCCCCCC
C++ Необработанное исключение по адресу 0x00105FD7 в Динамические структуры: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCE09
Исключение Нарушение прав доступа при чтении C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
04.06.2014, 05:20     Необработанное исключение: нарушение прав доступа при записи #2
1. У тебя цикл по переменной p, которая даже не инициализирована и больше никак не меняется. То есть он либо вообще не выполнится, либо будет бесконечным, в зависимости от того, что в памяти попадется, пипец....
2. Массив txt размера на один указатель. После первого прохождения цикла j уже больше нуля и присвоение чего либо в txt[j] естественно дает ошибку.
volk
1 / 1 / 0
Регистрация: 22.05.2014
Сообщений: 15
04.06.2014, 05:39  [ТС]     Необработанное исключение: нарушение прав доступа при записи #3
1. p вернет функция usl

C++
1
p = usl(razd, txt, i,j, frazd, Len, n, L);
Тут все в норме.

2. а тут как поправить так и не догнал
агерон
 Аватар для агерон
265 / 264 / 33
Регистрация: 12.10.2009
Сообщений: 1,030
04.06.2014, 05:41     Необработанное исключение: нарушение прав доступа при записи #4
задание огласи, а то это сферический кот в вакууме
volk
1 / 1 / 0
Регистрация: 22.05.2014
Сообщений: 15
04.06.2014, 05:44  [ТС]     Необработанное исключение: нарушение прав доступа при записи #5
Ввести строку символов – разделителей и массив строк текста с неизвестным заранее количеством строк. Признаком окончания ввода текста является ввод строки, в которой слова располагаются в порядке неубывания количества символов в них...

Непосредственно ввод текста
агерон
 Аватар для агерон
265 / 264 / 33
Регистрация: 12.10.2009
Сообщений: 1,030
04.06.2014, 08:38     Необработанное исключение: нарушение прав доступа при записи #6
ввод неограниченного количества строк, выход по нажатию Enter, использовние стандартной библиотеки std языка C++, компилятор MS VS 2010, консоль
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// stdafx.h: включаемый файл для стандартных системных включаемых файлов
// или включаемых файлов для конкретного проекта, которые часто используются, но
// не часто изменяются
//
 
#pragma once
 
#include "targetver.h"
 
#include <stdio.h>
#include <tchar.h>
#include <string>
#include <iostream>
#include <list>
 
using namespace std;
// TODO: Установите здесь ссылки на дополнительные заголовки, требующиеся для программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//main.cpp
#include "stdafx.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    std::list<string> stringLists;
    string data;
    do
    {
        cout<<"Введите строку (ENTER - выход): ";
        getline(cin, data);
        if (data.length()!=0) stringLists.push_back(data);
    }
    while (data.length()!=0);
    cout<<"Ввод данных завершен. Нажмите ENTER для выхода";
    getline(cin, data); 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2014, 08:52     Необработанное исключение: нарушение прав доступа при записи
Еще ссылки по теме:

C++ При обращении к структуре из класса возникает исключение:нарушение прав доступа при записи. Почему?
C++ Исправить ошибку: необработанное исключение по адресу, нарушение прав доступа при записи по адресу
Необработанное исключение по адресу, нарушение прав доступа при записи по адресу C++

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

Или воспользуйтесь поиском по форуму:
volk
1 / 1 / 0
Регистрация: 22.05.2014
Сообщений: 15
04.06.2014, 08:52  [ТС]     Необработанное исключение: нарушение прав доступа при записи #7
По заданию вводить обязательно с динамическим выделением (malloc/realloc) в этом собственно и загвоздка.
Yandex
Объявления
04.06.2014, 08:52     Необработанное исключение: нарушение прав доступа при записи
Ответ Создать тему
Опции темы

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