Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/140: Рейтинг темы: голосов - 140, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 8

Ошибка 0xC0000005

09.11.2014, 17:24. Показов 28708. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с такой вот ошибкой: Необработанное исключение по адресу 0x010E2E18 в ConsoleApplication36.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCCCCCCCC.

Сам текст программы. Задача состояла в том чтобы из файла трёх людей. Там записано в первой строчке кол-во человек. Во второй фамилия, 3 - местоработы, 4 - звание, 5 - дата когда запросили книгу, 6 - когда приняли запрос, 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
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
64
65
66
67
68
69
70
71
#include "fstream"
#include "iostream"
using namespace std;
 
struct lib                    // задаємо структуру
{
    char srnm[20];
    char job[50];
    char prof[50];
    char dt1[100];
    char dt2[100];
    char dt3[100];
};
lib * ReadFile(lib *m, int &n);    // оголошення функції
void WriteMas(lib *m, int n);
void Poluchatel(lib *m, int n);
 
void main(int argc, char * argv[])    //головна функція
{
    setlocale(LC_ALL, "Russian");
    int count;                        //ціле значення числа елементів
    lib * mas = 0;                    //вказівка на мвсив сируктур
    mas = ReadFile(mas, count);      //читання з файлу
    cout << "Пользователи библиотеки: \n";     //вивід інформації на екран
    WriteMas(mas, count);         //написання масива
    Poluchatel(mas, count);
}
 
lib * ReadFile(lib *m, int &n)
{
    setlocale(LC_ALL, "Russian");     //сприймання кирилиці
    ifstream f("stuc.txt");          //відкриття файлу
    f >> n;                          //зчитування кількості
    m = new lib[n];                //задання простору
    for (int i = 0; i<n; i++)        //цикл поки є елементи
        f >> (m + i)->srnm            //зчитування елементів в структуру
        >> (m + i)->job
        >> (m + i)->prof
        >> (m + i)->dt1
        >> (m + i)->dt2
        >> (m + i)->dt3;
    f.close();                        //закриття файлу                                      
    return m;                          //повернення стукрури
}
 
void WriteMas(lib *m, int n)
{
    setlocale(LC_ALL, "Russian");
    for (int i = 0; i<n; i++)
    {
        cout << (i + 1) << " "
            << (m + i)->srnm << " " //вивід із структури
            << (m + i)->job << " "
            << (m + i)->prof << " "
            << (m + i)->dt1 << " "
            << (m + i)->dt2 << " "
            << (m + i)->dt3 << " ";
        cout << endl;
    }
}
 
void Poluchatel(lib *m, int n)
{
    char* k[100];
    cout << "Введите дату: ";
    cin >> k[100];
    for (int i = 0; i<n; i++)
    {
        if (k[100] == (m + i)->dt1) cout << (m + i)->srnm << endl;
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.11.2014, 17:24
Ответы с готовыми решениями:

Файлы, строки, fgets, ошибка 0xC0000005
Вот такая вот ошибка: First-chance exception at 0x1025f9cb (msvcr100d.dll) in 6_1.exe: 0xC0000005: Access violation writing location...

Visual Studio 2010.При компиляции ошибка 0xC0000005
При компиляции выдает сообщение : Unhandled exception at 0x5c373aff (msvcp100d.dll) in testt.exe: 0xC0000005: Access violation reading...

Ошибка "0xC0000005: нарушение прав доступа"
#include &quot;stdafx.h&quot; #include &lt;time.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;stdint.h&gt; #include &lt;locale.h&gt; #include...

5
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
09.11.2014, 18:00
Лучший ответ Сообщение было отмечено polzovatel101 как решение

Решение

в 64й строке вы объявляете массив указателей, а память не выделяете
соответственно в 66й строке происходит попытка записи "в никуда"
Кроме того в этой же строке происходит выход за границы массива k
в 69й строке вы сравниваете указатели, а не строки. опять же выход за границы массива k
строки "в стиле С" сравниваются не оператором "==", а с помощью функции strcmp(определена в <cstring>)

C++
1
2
3
4
5
6
7
8
9
10
void Poluchatel(lib *m, int n)
{
    char k[100];
    cout << "Введите дату: ";
    cin >> k;
    for (int i = 0; i<n; i++)
    {
        if (strcmp(k, (m + i)->dt1) == 0) cout << (m + i)->srnm << endl;
    }
}
1
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 8
09.11.2014, 18:26  [ТС]
Теперь при вводите числа приложение просто падает... Пишет вот это: Стек вокруг переменной ' к' был поврежден .
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
09.11.2014, 19:21
Выложите измененный код и файл, с которого происходит ввод
0
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 8
09.11.2014, 20:01  [ТС]
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
64
65
66
67
68
69
70
71
72
#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;
 
struct lib                    // задаємо структуру
{
    char srnm[20];
    char job[50];
    char prof[50];
    char dt1[100];
    char dt2[100];
    char dt3[100];
};
lib * ReadFile(lib *m, int &n);    // оголошення функції
void WriteMas(lib *m, int n);
void Poluchatel(lib *m, int n);
 
void main(int argc, char * argv[])    //головна функція
{
    setlocale(LC_ALL, "Russian");
    int count;                        //ціле значення числа елементів
    lib * mas = 0;                    //вказівка на мвсив сируктур
    mas = ReadFile(mas, count);      //читання з файлу
    cout << "Пользователи библиотеки: \n";     //вивід інформації на екран
    WriteMas(mas, count);         //написання масива
    Poluchatel(mas, count);
}
 
lib * ReadFile(lib *m, int &n)
{
    setlocale(LC_ALL, "Russian");     //сприймання кирилиці
    ifstream f("stuc.txt");          //відкриття файлу
    f >> n;                          //зчитування кількості
    m = new lib[n];                //задання простору
    for (int i = 0; i<n; i++)        //цикл поки є елементи
        f >> (m + i)->srnm            //зчитування елементів в структуру
        >> (m + i)->job
        >> (m + i)->prof
        >> (m + i)->dt1
        >> (m + i)->dt2
        >> (m + i)->dt3;
    f.close();                        //закриття файлу                                      
    return m;                          //повернення стукрури
}
 
void WriteMas(lib *m, int n)
{
    setlocale(LC_ALL, "Russian");
    for (int i = 0; i<n; i++)
    {
        cout << (i + 1) << " "
            << (m + i)->srnm << " " //вивід із структури
            << (m + i)->job << " "
            << (m + i)->prof << " "
            << (m + i)->dt1 << " "
            << (m + i)->dt2 << " "
            << (m + i)->dt3 << " ";
        cout << endl;
    }
}
 
void Poluchatel(lib *m, int n)
{
    char k[100];
    cout << "Введите дату: ";
    cin >> k[100];
    for (int i = 0; i<n; i++)
    {
        if (strcmp(k, (m + i)->dt1) == 0) cout << (m + i)->srnm << endl;
    }
}
Файл:
3
Petrov
MVD
Prapor
25.11.2014
26.11.2014
26.12.2014

Ivanov
SBU
Sergant
25.07.2013
26.07.2013
27.07.2013

Pavlov
Prokuratura
Pomoshnik
13.04.2012
14.04.2012
15.04.2012
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
09.11.2014, 20:33
polzovatel101, 67я строка выход за границу массива
после k указывать размер не надо)
в этой строчке вы пытаетесь ввести символ(а не строку) в ячейку под номером 100, хотя максимальный номер в этом случае - 99
Вам нужно почитать про строки в Си
Так же советую посмотреть темы Распространенные ошибки С++ Распространенные ошибки С

сравните код что привел я, и тот что у вас.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2014, 20:33
Помогаю со студенческими работами здесь

Ошибка Необработанное исключение в "0x5e172fed (msvcr100d.dll)" в "Лабораторная 8.exe": 0xC0000005: Нарушение прав досту
При компиляции выдает такую ошибку &quot;Необработанное исключение в &quot;0x5e172fed (msvcr100d.dll)&quot; в &quot;Лабораторная 8.exe&quot;:...

Ошибка: "Необработанное исключение: 0xC0000005: Нарушение прав доступа при записи"
мной написана программа #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &quot;mpi.h&quot; #include &lt;ctime&gt; #include &lt;time.h&gt; ...

exception : 0xC0000005: Access Violation
Разработка идет по windows mobile 6. Возникла необходимость в определенном случае менять данные в памяти по адресу 0x02020000 cо смещение...

0xC0000005: Access violation writing location
Пытаюсь запустить стороннее приложение таким кодом: PROCESS_INFORMATION P_I; STARTUPINFO S_I; ZeroMemory(&amp;S_I, sizeof(S_I));...

Необработанное исключение: 0xC0000005: Нарушение прав доступа при чтении
Программа складывает и вычитает матрицы произвольной размерности, читаемые ею с файла. На самом выходе из программы вылетает данное...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru