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

"0xC0000005: Access violation reading location" при запуске

24.11.2017, 22:32. Показов 25227. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не компилируется

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
#include <iostream> 
#include <cstring> 
#include <cctype> 
 using namespace std;
class String{ 
private: 
char *str; 
size_t len; 
public: 
String(): str(0), len(0){}; 
String(char *str); 
void clear(); 
void toupp(); 
size_t length() const; 
int find_first_of(char ch); 
~String(); 
}; 
 
String::String(char *str_): len(strlen(str)){ 
str = new char[strlen(str_)]; 
strcpy(str, str_); 
} 
 
void String::clear(){ 
len = 0; 
delete[] str; 
} 
 
void String::toupp(){ 
for(int i = 0; i < len; ++i) 
str[i] = toupper(str[i]); 
} 
 
size_t String::length() const{ 
return len; 
} 
 
int String::find_first_of(char ch){ 
for(int i = 0; i < len; ++i) 
if(str[i] == ch) 
return i; 
return -1; 
} 
 
String::~String(){ 
delete[] str; 
}
int main()
{
    String afa("asd");
    afa.clear();
    afa.clear();
   return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.11.2017, 22:32
Ответы с готовыми решениями:

0xC0000005: Access violation reading location 0x0012A01C. Не понимаю что за ошибка
Код компилируется, но скорее всего ошибка в передаче данных вот здесь: void vik() { SetConsoleCP(1251); ...

Exception thrown at 0x77D75BCA (ntdll.dll): 0xC0000005: Access violation reading location 0x0000
Есть задача Есть решение Основное приложение: #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

Ошибка: Unhandled exception at 0x772115de in TimeShift.exe: 0xC0000005: Access violation reading location 0x00041000.
всем привет! При использовании двумерного массива постоянно появляется ошибка :Unhandled exception at 0x772115de in TimeShift.exe:...

26
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
24.11.2017, 22:34
Цитата Сообщение от Monster2934 Посмотреть сообщение
Не компилируется
Молча?
0
0 / 0 / 1
Регистрация: 17.11.2017
Сообщений: 22
24.11.2017, 22:38  [ТС]
what?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
24.11.2017, 22:44
I listen You
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
24.11.2017, 22:45
Текст ошибки скиньте...
0
0 / 0 / 1
Регистрация: 17.11.2017
Сообщений: 22
24.11.2017, 22:50  [ТС]
Unhandled exception at 0x0fa8d540 (msvcr100d.dll) in 22222241.exe: 0xC0000005: Access violation reading location 0xcccccccc.

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
        page    ,132
        title   strlen - return the length of a null-terminated string
;***
;strlen.asm - contains strlen() routine
;
;       Copyright (c) Microsoft Corporation. All rights reserved.
;
;Purpose:
;       strlen returns the length of a null-terminated string,
;       not including the null byte itself.
;
;*******************************************************************************
 
        .xlist
        include cruntime.inc
        .list
 
page
;***
;strlen - return the length of a null-terminated string
;
;Purpose:
;       Finds the length in bytes of the given string, not including
;       the final null character.
;
;       Algorithm:
;       int strlen (const char * str)
;       {
;           int length = 0;
;
;           while( *str++ )
;                   ++length;
;
;           return( length );
;       }
;
;Entry:
;       const char * str - string whose length is to be computed
;
;Exit:
;       EAX = length of the string "str", exclusive of the final null byte
;
;Uses:
;       EAX, ECX, EDX
;
;Exceptions:
;
;*******************************************************************************
 
        CODESEG
 
        public  strlen
 
strlen  proc \
        buf:ptr byte
 
        OPTION PROLOGUE:NONE, EPILOGUE:NONE
 
        .FPO    ( 0, 1, 0, 0, 0, 0 )
 
string  equ     [esp + 4]
 
        mov     ecx,string              ; ecx -> string
        test    ecx,3                   ; test if string is aligned on 32 bits
        je      short main_loop
 
str_misaligned:
        ; simple byte loop until string is aligned
        mov     al,byte ptr [ecx]
        add     ecx,1
        test    al,al
        je      short byte_3
        test    ecx,3
        jne     short str_misaligned
 
        add     eax,dword ptr 0         ; 5 byte nop to align label below
 
        align   16                      ; should be redundant
 
main_loop:
        mov     eax,dword ptr [ecx]     ; read 4 bytes
        mov     edx,7efefeffh
        add     edx,eax
        xor     eax,-1
        xor     eax,edx
        add     ecx,4
        test    eax,81010100h
        je      short main_loop
        ; found zero byte in the loop
        mov     eax,[ecx - 4]
        test    al,al                   ; is it byte 0
        je      short byte_0
        test    ah,ah                   ; is it byte 1
        je      short byte_1
        test    eax,00ff0000h           ; is it byte 2
        je      short byte_2
        test    eax,0ff000000h          ; is it byte 3
        je      short byte_3
        jmp     short main_loop         ; taken if bits 24-30 are clear and bit
                                        ; 31 is set
 
byte_3:
        lea     eax,[ecx - 1]
        mov     ecx,string
        sub     eax,ecx
        ret
byte_2:
        lea     eax,[ecx - 2]
        mov     ecx,string
        sub     eax,ecx
        ret
byte_1:
        lea     eax,[ecx - 3]
        mov     ecx,string
        sub     eax,ecx
        ret
byte_0:
        lea     eax,[ecx - 4]
        mov     ecx,string
        sub     eax,ecx
        ret
 
strlen  endp
 
        end
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
24.11.2017, 22:56
Цитата Сообщение от QuakerRUS Посмотреть сообщение
Текст ошибки скиньте...
Screen of mistake(s)? or message?
Цитата Сообщение от Monster2934 Посмотреть сообщение
Unhandled exception at 0x0fa8d540 (msvcr100d.dll) in 22222241.exe: 0xC0000005: Access violation reading location 0xcccccccc.
Да транслируется она. Только в не в свою память лезешь.
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
24.11.2017, 22:57
Вы трижды пытаетесь очистить массив str (два раза в main, один раз в деструкторе), одного раза достаточно.
0
0 / 0 / 1
Регистрация: 17.11.2017
Сообщений: 22
24.11.2017, 23: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
#include <iostream> 
#include <cstring> 
#include <cctype> 
 using namespace std;
class String{ 
private: 
char *str; 
size_t len; 
public: 
String(): str(0), len(0){}; 
String(char *str); 
void clear(); 
void toupp(); 
size_t length() const; 
int find_first_of(char ch); 
~String(); 
}; 
 
String::String(char *str_): len(strlen(str)){ 
str = new char[strlen(str_)]; 
strcpy(str, str_); 
} 
 
void String::clear(){ 
len = 0; 
delete[] str; 
} 
 
void String::toupp(){ 
for(int i = 0; i < len; ++i) 
str[i] = toupper(str[i]); 
} 
 
size_t String::length() const{ 
return len; 
} 
 
int String::find_first_of(char ch){ 
for(int i = 0; i < len; ++i) 
if(str[i] == ch) 
return i; 
return -1; 
} 
 
//String::~String(){ 
//delete[] str; 
//}
int main()
{
    String afa("asd");
    afa.clear();
   return 0;
}
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
24.11.2017, 23:06
Не то. Что должен делать clear и зачем он нужен?
0
0 / 0 / 1
Регистрация: 17.11.2017
Сообщений: 22
24.11.2017, 23:09  [ТС]
я уже сам запутался,наверно что б очистить память потом,если знаете можете пожалуйста скинуть код,который не будет выдавать эту ошибку
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
24.11.2017, 23:12
Если он служит для того, чтобы сделать строку пустой, то после удаления массива, надо создать пустой. Например так.

C++
1
2
3
4
5
6
void String::clear() {
    len = 0;
    delete[] str;
    str = new char[1];
    strcpy(str, "");
}
Иначе деструктор будет пытаться удалить удаленный массив и вызывать ошибку в программе.
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
24.11.2017, 23:14
Памяти нужно выделять на один байт больше, чтобы влез терминальный нуль:
String::String(char *str_): len(strlen(str)+1)
0
0 / 0 / 1
Регистрация: 17.11.2017
Сообщений: 22
24.11.2017, 23:15  [ТС]
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
#include <iostream> 
#include <cstring> 
#include <cctype> 
 using namespace std;
class String{ 
private: 
char *str; 
size_t len; 
public: 
String(): str(0), len(0){}; 
String(char *str); 
void clear(); 
void toupp(); 
size_t length() const; 
int find_first_of(char ch); 
~String(); 
}; 
 
String::String(char *str_): len(strlen(str)){ 
str = new char[strlen(str_)]; 
strcpy(str, str_); 
} 
 
void String::clear() {
    len = 0;
    delete[] str;
    str = new char[1];
    strcpy(str, "");
}
 
void String::toupp(){ 
for(int i = 0; i < len; ++i) 
str[i] = toupper(str[i]); 
} 
 
size_t String::length() const{ 
return len; 
} 
 
int String::find_first_of(char ch){ 
for(int i = 0; i < len; ++i) 
if(str[i] == ch) 
return i; 
return -1; 
} 
 
//String::~String(){ 
//delete[] str; 
//}
int main()
{
    String afa("asd");
    afa.clear();
   return 0;
}
так сделать?
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
24.11.2017, 23:17
Monster2934, как вариант. или так

C++
1
2
3
4
5
6
7
8
9
void String::clear() {
    len = 0;
 
    if (str != NULL)
    {
        delete[] str;
        str = NULL;
    }
}
C++
1
2
3
4
String::~String() {
    if (str != NULL)
        delete[] str;
}
0
0 / 0 / 1
Регистрация: 17.11.2017
Сообщений: 22
24.11.2017, 23:21  [ТС]
Ошибка можете сама полный код проверить все равно ошибка

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
#include <iostream> 
#include <cstring> 
#include <cctype> 
 using namespace std;
class String{ 
private: 
char *str; 
size_t len; 
public: 
String(): str(0), len(0){}; 
String(char *str); 
void clear(); 
void toupp(); 
size_t length() const; 
int find_first_of(char ch); 
~String(); 
}; 
 
String::String(char *str_): len(strlen(str)+1){ 
str = new char[strlen(str_)]; 
strcpy(str, str_); 
} 
 
void String::clear() {
    len = 0;
 
    if (str != NULL)
    {
        delete[] str;
        str = NULL;
    }
}
void String::toupp(){ 
for(int i = 0; i < len; ++i) 
str[i] = toupper(str[i]); 
} 
 
size_t String::length() const{ 
return len; 
} 
 
int String::find_first_of(char ch){ 
for(int i = 0; i < len; ++i) 
if(str[i] == ch) 
return i; 
return -1; 
} 
 
//String::~String(){ 
//delete[] str; 
//}
int main()
{
    String afa("asd");
    afa.clear();
    //  afa.clear();
   return 0;
}
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
24.11.2017, 23:23
Деструктор забыли переделать.
0
0 / 0 / 1
Регистрация: 17.11.2017
Сообщений: 22
24.11.2017, 23:24  [ТС]
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
#include <iostream> 
#include <cstring> 
#include <cctype> 
 using namespace std;
class String{ 
private: 
char *str; 
size_t len; 
public: 
String(): str(0), len(0){}; 
String(char *str); 
void clear(); 
void toupp(); 
size_t length() const; 
int find_first_of(char ch); 
~String(); 
}; 
 
String::String(char *str_): len(strlen(str)+1){ 
str = new char[strlen(str_)]; 
strcpy(str, str_); 
} 
 
void String::clear() {
    len = 0;
 
    if (str != NULL)
    {
        delete[] str;
        str = NULL;
    }
}
void String::toupp(){ 
for(int i = 0; i < len; ++i) 
str[i] = toupper(str[i]); 
} 
 
size_t String::length() const{ 
return len; 
} 
 
int String::find_first_of(char ch){ 
for(int i = 0; i < len; ++i) 
if(str[i] == ch) 
return i; 
return -1; 
} 
 
String::~String() {
    if (str != NULL)
        delete[] str;
}
int main()
{
    String afa("asd");
    afa.clear();
    //  afa.clear();
   return 0;
}

так же ошибка
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
24.11.2017, 23:24
C++
1
2
3
4
String::~String() {
    if (str != NULL)
        delete[] str;
}
0
0 / 0 / 1
Регистрация: 17.11.2017
Сообщений: 22
24.11.2017, 23:25  [ТС]
не робит ничо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2017, 23:25
Помогаю со студенческими работами здесь

Ошибка Unhandled exception at 0x001EB509 in Gauss1.exe: 0xC0000005: Access violation reading location 0xCCCCCCD4
Программа должна генерировать и выводить на экран матрицу n x n. Однако, вылетает исключение: Unhandled exception at 0x001EB509 in...

Access violation reading location при инициализации двумерного массива
Доброго времени суток делаю небольшую задачку связанную с двумерным массивом, пытаюсь передавать в функцию указатель на него как указатель...

Access violation reading location
добрый вечер , что может означать ошибка ? &quot;Exception thrown at 0x00B427CD in ConsoleApplication4.exe: 0xC0000005: Access violation reading...

Access violation reading location
Вот есть код. Через раз выдает ошибки, &quot;Exception thrown at 0x00007FF6328E67AF in ConsoleApplication2.exe: 0xC0000005: Access violation...

access violation reading location
access violation reading location такая проблема если вести информацию про двух и больше студентов помогите пожалуйста очень срочно надо ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru