Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.11.2018
Сообщений: 1
1

Вызвано исключение по адресу 0x01068781 в 2nd.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCCCCCCCC

28.11.2018, 11:50. Показов 1575. Ответов 2
Метки нет (Все метки)

Доброго времени суток, кто может помочь по вопросу? Постоянно выбивает ошибку. Мне кажется, там еще память не выделена, но я не полностью не уверен. Вот код:
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
40
41
42
43
44
45
46
47
48
49
50
#include "pch.h"
#include <string>
#include <regex>
#include <stdio.h>
#include <iostream>
#include <sstream>
#include <fstream>
#include <array>
#include <cstdlib>
 
using namespace std;
 
int *PrintMatches2(string str, regex reg) {
    int i = 0;
    int *arr[3];
    sregex_iterator currentMatch(str.begin(), str.end(), reg);
    sregex_iterator lastMatch;
    while (currentMatch != lastMatch) {
        smatch match = *currentMatch;
        //cout << match.str() << "\n";
        *arr[i] = stoi(match.str());
        i++;
        currentMatch++;
    }
    cout << endl;
    return *arr;
}
int main() {
 
    fstream file;
    regex e("[0-9]{1,6}");
    file.open("in.txt");
    string line;
    if (file.is_open())
    {
        while (getline(file, line))
        {
            int *arr=PrintMatches2(line, e);
            int a=arr[0], b=arr[1], c=arr[2], v, n;
            v = a * b * c;
            n = 2 * (a * b * (c - 1) + b * c * (a - 1) + a * c * (b - 1));
            cout << v << " " << n;
        }
        file.close();
    }
 
    else cout << "Exception 0x0034b10: File not found.";
    return 0;
    
}
Ошибку показывает в 21 строке.
Буду очень признателен за ответ.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2018, 11:50
Ответы с готовыми решениями:

Вызвано исключение по адресу 0x003F2357 в Лабораторна 15.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x
Что это такое и как это исправить? Вот фрагмент кода где и есть проблема: ... int size = 9;...

Необработанное исключение по адресу 0x00ED4891 в strings.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCCCCCCCC
Программа толком не написан, проверял ранд и возникли проблемы. Ф-ция ранд генерирует одно и тоже...

Вызвано исключение по адресу 0x013C1891 в Jacobi.exe: 0xC0000005: нарушение прав доступа при чтении по адресу
#include &lt;math.h&gt; const double eps = 0.001; ///&lt; желаемая точность /// N - размерность...

Вызвано исключение по адресу 0x01361A1E в Matrix 1.0.exe: 0xC0000005: нарушение прав доступа при записи
Вызвано исключение по адресу 0x01361A1E в Matrix 1.0.exe: 0xC0000005: нарушение прав доступа при...

2
259 / 109 / 53
Регистрация: 22.01.2017
Сообщений: 439
28.11.2018, 12:09 2
Zitro, выделить память:
C++
1
int *arr = new int[3];
Заполнить:
C++
1
arr[i] = stoi(match.str());
Вернуть:
C++
1
return arr;
В main очистить память:
C++
1
delete [] arr;
Но все это не есть хорошо. Лучше использовать какой-нибудь контейнер.
0
566 / 349 / 132
Регистрация: 15.09.2017
Сообщений: 1,239
28.11.2018, 12:24 3
Zitro, Хотел расписать в чем у вас проблема, но понял что писать придется много и это уже есть в учебниках. Советую прочитать лучше про указатели и понять как их правильно использовать. В вашем коде ошибок много. Самая главная ошибка: вы выделяете статический массив в функции и возвращаете на него указатель (коряво но...), который при выходе из него уничтожается и разумеется доступа к нему нет. Ещё раз повторюсь, вы не поняли тему указателей, советую прочитать повторно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2018, 12:24

Вызвано исключение по адресу 0x01083191 в ConsoleApplication.exe: 0xC0000005: нарушение прав доступа при чтении по адрес
Вызвано исключение по адресу 0x01083191 в ConsoleApplication.exe: 0xC0000005: нарушение прав...

Необработанное исключение по адресу 0x001B3371 в XXX.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDF
Делал консольную змейку и столкнулся вот с такой проблемой. void stena(char **arr) { int y...

Необработанное исключение по адресу 0x00105FD7 в Динамические структуры: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCE09
Необработанное исключение по адресу 0x00105FD7 в Динамические структуры.exe: 0xC0000005: нарушение...

Необработанное исключение по адресу 0x00E730CD в ConsoleApplication18.exe: 0xC0000005: нарушение прав доступа при чтении
Задана целочисленная динамическая матрица M. Элементы этой матрицы, без остатка делящиеся на 6,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru