Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 25.09.2022
Сообщений: 17

Ошибка «Нарушение прав доступа при чтении по адресу»

19.11.2022, 19:11. Показов 766. Ответов 5
Метки #c++ (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! Подскажите, пожалуйста, как я могу исправить ошибку, возникающую на строке 61(Возможно, где-то еще). Ошибка Ошибка «Необработанное исключение по адресу. Нарушение прав доступа при чтении по адресу».
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
 
 
int main() {
 
  setlocale(LC_ALL, ".RUSSIAN");
 
  while (1) {
 
    char arr[81]{};
    char arr1[81]{};
    char arr2[81]{};
    char arr3[81]{};
    char arr4[81]{};
    char arr44[81]{};
    char arr7[81]{};
    int n = 0;
    char* St;
 
    std::cout << "Enter the text:\n";
    gets_s(arr);
    strcpy(arr3, arr);
    std::cout << "\n";
 
    std::cout << "Enter the given substring:\n";
    gets_s(arr1);
    int k = strlen(arr1);
    std::cout << "\n";
 
    std::cout << "Enter a symbol which you want to paste:\n";
    gets_s(arr2);
    strcpy(arr7, arr2);
 
      int q = strlen(arr);
      St = strstr(arr, arr1);
      if (strstr(arr, arr1) != 0) {
        if (St) {
          *St = 0;
          St += k;
        }
 
        if (St  *St == ' ') {
          strcat(arr2, St);
          int f = strlen(arr2);
          int b = q - f + 1;
 
          for (int i = 0; i < b; i++) {
            arr4[i] = arr3[i];
          }
 
          strcat(arr4, arr2);
          n++;
        }
        while (St  *St != ' ') {
        
          St = strstr(St, arr1);
          St += k;
          if (St  *St == ' ') {
            strcat(arr2, St);
            
              int f = strlen(arr2);
              int b = q - f + 1;
 
              for (int i = 0; i < b; i++) {
                arr4[i] = arr3[i];
              }
 
              strcat(arr4, arr2);
            
          }
        }
 
        strcpy(arr, arr2);
      }
      while (St  strstr(arr, arr1) != 0) {
      int q = strlen(arr4);
      St = strstr(arr, arr1);
 
      if (St) {
        *St = 0;
        St += k;
      }
 
      if (St  *St == ' ') {
        strcpy(arr2, arr7);
        strcat(arr2, St);
        int f = strlen(arr2);
        int b = q - f + 1;
 
        for (int i = 0; i < 81; i++) {
          arr44[i] = 0;
        }
        n++;
        strncpy(arr44, arr4, b);
        strcat(arr44, arr2);
      }
 
      else if (St  *St != ' ') {
 
        while (St  *St != ' ') {
 
          St = strstr(St, arr1);
 
          St += k;
 
          if (St  *St == ' ') {
            strcpy(arr2, arr7);
            strcat(arr2, St);
            int f = strlen(arr2);
            int b = q - f + 1;
            for (int i = 0; i < 81; i++) {
              arr44[i] = 0;
            }
            
            strncpy(arr44, arr4, b);
            strcat(arr44, arr2);
          }
        }
        }
      strcpy(arr, arr2);
      strcpy(arr4, arr44);
    }
    /*if (*(strstr(arr, arr1) + k - 1) == arr4[q]) {
      strcat(arr4, arr7);
    }*/
    q = 0;
    q = strlen(arr4);
    std::cout << "\n";
    std::cout << "Result:\n";
 
    if (n > 0) {
      for (int i = 0; i < q; i++) {
        std::cout << arr4[i];
      }
    }
    else if (n == 0) {
      std::cout << "There are no words in the text that end with the given substring.\n";
    }
    else {
      for (int i = 0; i < q; i++) {
        std::cout << arr[i];
      }
    }
    std::cout << "\n\n";
      system("pause");
      system("cls");
  }
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.11.2022, 19:11
Ответы с готовыми решениями:

Ошибка: нарушение прав доступа при чтении по адресу
Код: #include &lt;SFML/Graphics.hpp&gt; int M = 3; int N = 3; int Scale = 100; int w = Scale*M; int h = Scale*N;

Ошибка нарушение прав доступа при чтении по адресу
Здравствуйте, в VS 2022 пытался по видео сделать шахматы, но выдает вот такую ошибку: Вызвано исключение по адресу 0x00007FF800D81470...

Ошибка 0xC0000005: нарушение прав доступа при чтении по адресу 0x3854BDD4
задание: поменять местами отрицательные элементы массива с положительными. почему то выдает ошибку? #include&lt;stdio.h&gt; ...

5
Нарушитель
10226 / 5657 / 1258
Регистрация: 12.03.2015
Сообщений: 26,214
19.11.2022, 19:18
Ребята, вы реально задолбали пихать всю программу в main(). Это какая-то болезнь, которая через интырнет передаётся?
0
1 / 1 / 0
Регистрация: 25.09.2022
Сообщений: 17
19.11.2022, 19:23  [ТС]
Ну не зря ведь эта задача размещена в разделе «С++ для начинающих»…
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
19.11.2022, 20:42
Angelina9, товарищ начинающий, можете объяснить что это у вас за конструкция
Цитата Сообщение от Angelina9 Посмотреть сообщение
C++
1
if (St *St == ' ')
и это
Цитата Сообщение от Angelina9 Посмотреть сообщение
C++
1
while (St strstr(arr, arr1) != 0) {
?
Потому что в таком виде этот код невозможно скомпилировать.
0
1 / 1 / 0
Регистрация: 25.09.2022
Сообщений: 17
19.11.2022, 21:38  [ТС]
Неверно скопировалось сюда почему-то
Имелось ввиду через амперсанд S && *S == ‘ ‘

Добавлено через 7 минут
Verevkin, чтобы начать упрощать код и при этом чтобы он оставался рабочим, нужно набираться хоть немного опыта. Для чего столько негатива? У начинающего программиста главная цель - решить задачу. А как, это пока что второстепенный вопрос. Для этого нужно время. Лучше бы помогли, а не писали такое, раз вы себя преподносите как не начинающий программист.
1
Заблокирован
19.11.2022, 22:50
Цитата Сообщение от Angelina9 Посмотреть сообщение
Ошибка «Необработанное исключение по адресу. Нарушение прав доступа при чтении по адресу».
Однозначно где то выход за пределы массива (строки).
Вы складываете строки, при этом никак не контролируя длину получившейся строки.

Цитата Сообщение от Angelina9 Посмотреть сообщение
for (int i = 0; i < b; i++)
высчитываете непонятные пределы индексов.
b ???

указатель St многократно изменяется, что где куда на кого ону указывает никто никогда не узнает.

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

Ошибка при загрузке фото - нарушение прав доступа при чтении по адресу 0x00814000
При попытке компиляции кода выскакивает ошибка: Первый этап обработки исключения по адресу 0x5E4FF20C (msvcr120.dll) в TestSFML.exe:...

Вызвано исключение по адресу, нарушение прав доступа при чтении по адресу
void perechAvtoDinam(avto x, int n, spisok* py, int&amp; k) { int i, j, fl; spisok* p; p = new spisok; if (p == NULL)...

Вызвано исключение по адресу 0x009B3066 в 99.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDFDFDFD
Привет, нужна помощь по коду. В прямоугольной матрице в каждом столбце поставить на первое место максимальный элемент столбца и, если...

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

Вызвано исключение по адресу 0x003F7882 в Project1.exe: 0xC0000005: нарушение прав доступа при чтении по адресу
void Pushage(tree** t, int ticket_code, int numberofthings,string last_name) { if ((*t) == NULL){ ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru