Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
#1

Ошибка обращения к нулевому адресу - C++

22.07.2010, 22:19. Просмотров 1741. Ответов 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
int main(int argc, char* argv[])
{
    ifstream f ("alphacntr",ios::in|ios::binary);
    
 
    if (!f)
    {
        cout<<"File opening error!\n";
        return 1;
    }
 
    int mas [25], i;
    char ch;
 
    for (i = 0; i < 26; i++)
        mas [i] = 0;
 
    while (!f.eof())
    {
        ch = f.get();
 
        if (isalpha(ch))
        {
            if (!islower(ch))
                toupper(ch);
 
            mas [ch - 'A']++;
        }
    }
 
    for (i = 0; i < 26; i++)
    {
        cout<<(char)mas[i + 'A']<<' ';
    }
 
    cout<<endl;
 
    for (i = 0; i < 26; i++)
    {
        cout<<mas[i];
    }
 
    cout<<endl;
 
    return 0;
}
while (!f.eof()) - на этой строчке выдаёт "Unhandled exception in ....exe: 0x0000005: Access Violation."
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2010, 22:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка обращения к нулевому адресу (C++):

Почему код корректро отрабатывает после обращения по разыменованному нулевому указателю? - C++
Добрый вечер, проходил тест по плюсам и столкнулся со следующим кодом. Объясните, пожалуйста, почему всё работает? По идее же происходит...

Ошибка обращения к элементу массива - C++
void sort(int *mas, int len) { int max = mas; int min = mas; for (int i = 1; i&lt;len; ++i) { if (max &lt; mas) max = mas;...

Ошибка в уровнях косвенного обращения - C++
Доброе всем время суток! Пишу программку, все делю по частям и проверяю. возникла ошибка, а именно : t: &quot;double&quot; отличается по уровням...

Конвертор из wchar_t to string. Ошибка косвенного обращения. - C++
Вот код, Ошибки: Ошибка 3 error C2040: temp: &quot;std::string&quot; отличается по уровням косвенного обращения от &quot;wchar_t...

Ошибка обращения к строке (нарушение прав доступа чтения) - C++
Добрый всем день немогу разобраться что за ошибка и как ее локализовать код и скрин прикреплены

Необработанное исключение по адресу, нарушение прав доступа при записи по адресу - C++
вот само задание: Авиарейсы (номер рейса, пункт назначения, время вылета, дата вылета, стоимость билета, количество мест). Выбор по дате...

21
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
23.07.2010, 13:15  [ТС] #16
Цитата Сообщение от M128K145 Посмотреть сообщение
alexsvk, перечитайте внимательно пост Ошибка обращения к нулевому адресу
Указатель на следующей команде (не совсем понял), но у easybudda после исправления на .txt всё запустилось, у меня до сих пор ошибка.
0
M128K145
Эксперт JavaЭксперт С++
8316 / 3536 / 143
Регистрация: 03.07.2009
Сообщений: 10,708
23.07.2010, 13:31 #17
Вот код
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
int main(int argc, char* argv[])
{
        ifstream f ("alphacntr.txt",ios::in|ios::binary);
        
 
        if (f == NULL)
        {
                cout<<"File opening error!\n";
                return 1;
        }
 
        int mas [25], i;
        char ch;
 
        for (i = 0; i < 25; i++)
                mas [i] = 0;
 
        while (!f.eof())
        {
                ch = f.get();
                if (!f.good() && f.eof()) return 1;
 
                if (isalpha(ch))
                {
                        if (!islower(ch))
                                toupper(ch);
                        mas [ch - 'A']++;
                }
        }
        for (i = 0; i < 25; i++)
        {
                cout<<(char)mas[i + 'A']<<' ';
        }
        cout<<endl;
        for (i = 0; i < 25; i++)
        {
                cout<<mas[i];
        }
        cout<<endl;
        f.close();
        if (!f.good()) return 1;
 
        return 0;
}
0
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
23.07.2010, 14:03  [ТС] #18
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
int main(int argc, char* argv[])
{
    fstream f ("alphacntr.txt",ios::out|ios::binary);
 
    char str [255];
 
    if (!f)
    {
        cout<<"File opening error!\n";
        return 1;
    }
 
    cout<<"Enter the string: ";
    cin.getline(str, 254);
 
    f.write(str, strlen(str));
 
    f.close();
 
    f.open("alphacntr.txt",ios::in|ios::binary);
 
    int mas [25], i;
    char ch;
 
    for (i = 0; i < 25; i++)
        mas [i] = 0;
 
    while (!f.eof())
    {
        ch = f.get();
 
        if (!f.good() && f.eof()) return 1;
 
        if (isalpha(ch))
        {
            if (islower(ch))
                toupper(ch);
 
            mas [ch - 'A']++;
        }
    }
 
    for (i = 0; i < 25; i++)
    {
        cout<<(char)mas[i + 'A']<<": "<<mas[i]<<endl;
    }
 
    cout<<endl;
 
    f.close();
 
    if (!f.good()) return 1;
 
    return 0;
}
Переделал код, но вопрос следующий, объясните, пожалуйста, при каких обстоятельствах происходит пропуск инструкций
C++
1
2
3
4
for (i = 0; i < 25; i++)
    {
        cout<<(char)mas[i + 'A']<<": "<<mas[i]<<endl;
    }
0
FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
23.07.2010, 14:37 #19
Цитата Сообщение от alexsvk Посмотреть сообщение
объясните, пожалуйста, при каких обстоятельствах происходит пропуск инструкций
Каких, именно инструкций?
0
CyBOSSeR
Эксперт С++
2308 / 1681 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
23.07.2010, 14:56 #20
Цитата Сообщение от easybudda Посмотреть сообщение
Цитата Сообщение от M128K145 Посмотреть сообщение
C++
1
if(f == NULL)
а чем это в принципе от
C++
1
if ( ! f )
отличается?
В первом случае вызывается оператор:
C++
1
operator void*
а во втором
C++
1
operator!
Судя по описанию делают они одно и тоже, поэтому принципиально они идентичны.
0
easybudda
Модератор
Эксперт CЭксперт С++
9967 / 5890 / 996
Регистрация: 25.07.2009
Сообщений: 11,156
23.07.2010, 15:30 #21
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Судя по описанию делают они одно и тоже, поэтому принципиально они идентичны.
Ну я примерно так и думал...
Забавнее как-нибудь вот так проверять
C
1
2
3
4
...
if ( ! ( f != NULL ) ){
   /*...*/
}
и студентам в решения задачек вкручивать, чтобы преподы с ума сходили...
0
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
23.07.2010, 15:41  [ТС] #22
Цитата Сообщение от FireNovel Посмотреть сообщение
Каких, именно инструкций?
небольшой кусочек из кода представил ниже после своих слов в прошлом посте с циклом for
C++
1
2
3
4
for (i = 0; i < 25; i++)
        {
                cout<<(char)mas[i + 'A']<<": "<<mas[i]<<endl;
        }
0
23.07.2010, 15:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2010, 15:41
Привет! Вот еще темы с ответами:

Исправить ошибку: необработанное исключение по адресу, нарушение прав доступа при записи по адресу - C++
Помогите, пожалуйста, исправит ошибку. Необработанное исключение по адресу 0x77D88E19 (ntdll.dll) в Lab11.exe: 0xC0000005: нарушение...

Ошибка доступа по адресу 0x00000000 - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; using namespace std; FILE...

Ошибка: Вызвано исключение по адресу - C++
Всем привет вот исходный код: #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; #include...

Ошибка: необработанное исключение по адресу - C++
Из за чего может вылезти такая ошибка? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include...


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

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

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