0 / 0 / 0
Регистрация: 20.11.2019
Сообщений: 2
1

C++ Вызвано исключение по адресу 0x00346786 в Smooth_.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00

20.11.2019, 19:48. Показов 788. Ответов 4
Метки нет (Все метки)

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
51
52
53
54
55
56
57
58
59
60
61
62
63
void getvector(string file_, vector<double> mass)
{
    ifstream fin;
    fin.open(file_);
    if (!fin.is_open())
    {
        cout << "File dont open, try again" << endl;
    }
    else
    {
        cout << "File open" << endl;
        int i = 0;
        
        while (!fin.eof()) 
        {
            cout << "r" << endl;
            enum { MAX = 80 };
            string s[MAX];
            getline(fin, s[MAX]);
            mass[i]= atof(s[MAX].c_str());
            i++;
        }
 
        fin.close();
    }
}
 
 
double sum_vec(vector<double> mass)
{
 
 
    double sum_of_elems = 0;
    sum_of_elems = std::accumulate(mass.begin(), mass.end(), 0);
    
    return sum_of_elems;
}
 
int main(int argc, char *argv[])
{
    string file_("Text.txt");
    getvector(file_, massive_f);
    double M=0;
    cin >> M;
    if (M >= massive_f.size()) {
        massive_Buffer[0] = sum_vec(massive_f) / massive_f.size();
        for (int i = 1; i < massive_f.size(); i++)
        {
            massive_Buffer[i] = massive_Buffer[0];
            cout << massive_Buffer[i] << endl;
        }
    }
 
    /*for (int i = 0; i < massive_f.size;i++)
    { 
        for (int j=0)
        if ()
    }*/
 
 
    return 1;
 
}



Помогите, пожалуйста. Никак не могу понять, где ошибка затесалась(
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2019, 19:48
Ответы с готовыми решениями:

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

Вызвано исключение по адресу 0x00B31BEF в Project.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDFDFE0
Написал программу, но выдает ошибку: Вызвано исключение по адресу 0x00B31BEF в Project.exe:...

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

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

4
Мозгоправ
1729 / 1023 / 468
Регистрация: 01.10.2018
Сообщений: 2,137
Записей в блоге: 2
20.11.2019, 20:09 2
Ventoxo, функция getvector() принимает второй аргумент (вектор) по значению. Следовательно все манипуляции с вектором, сделанные внутри функции, не окажут влияния на фактический параметр, который передаётся при вызове. Т.е. после выполнения строки 42 переменная massive_f не изменится (кстати, не вижу её объявления). Это раз.

В функции getvector() в строке 18 вы объявляете массив строк длиной MAX (80). В строке 19 вы считываете строку в элемент массива s[MAX], т.е. элемент за границей массива. На чём, скорее всего и получаете исключение. Это два.

В строке 19 обращаетесь к элементу массива за его границей.

Вообще непонятно зачем вам там массив строк. Вы пользуетесь всего одной. Это три.

Очень подозрительно выглядят строки 44-52. Не знаю, что вы хотели сделать, но выглядит странно.
1
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
20.11.2019, 20:14 3
C++
1
getline(fin, s[MAX]);
1
0 / 0 / 0
Регистрация: 20.11.2019
Сообщений: 2
20.11.2019, 20:20  [ТС] 4
А дело случайно не в преобразовании типа string к double?

Ваши замечания понял. Ушел исправлять.
0
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
20.11.2019, 20:27 5
нет, atof приводит указатель на нуль-терминированную строку к вещественному типу двойной точности.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2019, 20:27

Вызвано исключение по адресу 0x501FF6E0 (ucrtbased.dll) в GlebProject.exe: 0xC0000005: нарушение прав доступа при чтении
Добрый день,подскажите пожалуйста в чем проблема. Никак не могу понять(( Не судите строго я...

Вызвано исключение по адресу 0x010F2FF7 в Project25.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xFDFDF
Всплывает окно на 45ой строке с сообщением: &quot;Вызвано исключение по адресу 0x010F2FF7 в...

Вызвано исключение по адресу 0x01068781 в 2nd.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCCCCCCCC
Доброго времени суток, кто может помочь по вопросу? Постоянно выбивает ошибку. Мне кажется, там еще...

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


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

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

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