7 / 6 / 1
Регистрация: 29.10.2016
Сообщений: 175
1

Нарушение прав доступа для чтения

29.05.2018, 09:37. Показов 819. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В программе используется односвязный циклический список, все работает, но при выполнении list_print, программа выводит значения на экран и выдает ошибку. В чем проблема?

44: Вызвано исключение: нарушение доступа для чтения. p было nullptr.
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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
struct list {
    unsigned int data;
    list* next;
}
*beg, *q, *end, *next, *p, *s;
void first_elem(int a){
    q = new list;   
    q->data = a;   
    q->next = q;  
    beg = q;
    end = q;
}
void new_element(int a){
    p = new list;
    p->data = a;
    p->next = 0;
    end->next = p; 
    end = p;
}
 
int find_elem(int col){
    unsigned int min = 4294967295;
    s = beg;
    while ((s) && (col !=0)) {
        if (s->data < min) {
            min = s->data;
        }
        s = s->next;
        col--;
    }
    return min;
}
 
void list_print(){
    p = beg;
    do {
        printf("%u ", p->data);
        p = p->next;
    } while (p != beg);
}
 
int main()
{
    printf_s("Hello, this programm can find min elem. \n");
    printf_s("Enter, 1st elem.(>0) \n");
    unsigned int a=0;
    do {
        scanf_s("%u", &a);
    } while (a<0);
    first_elem(a);
    int choise=0;
    int col = 1;
    do {
        system("cls");
        printf_s("Choose your path: \n");
        printf_s("1: Add a element \n2: Print elements\n3: Find min element \n4: Exit\n");
        scanf_s("%i", &choise);
        switch (choise)
        {
        case 1: {
            printf_s("Enter,a element.(>0) \n");
            unsigned int b = 0;
            do {
                scanf_s("%u", &b);
            } while (b<0);
            new_element(b);
            col++;
            break;
        }
        case 2: {
            list_print();
            break;
        }
        case 3: {
            unsigned int minimum=0;
            minimum=find_elem(col);
            printf_s("Your least element is: %u", minimum);
            break;
        }
        default: {
            choise = 4;
            break;
        }   
        }
    } while (choise != 4);
    _getch();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2018, 09:37
Ответы с готовыми решениями:

Нарушение прав доступа для чтения
#define _CRT_SECURE_NO_WARNINGS #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt;...

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

Нарушение доступа для чтения
#include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std;...

Исключение - нарушение доступа для чтения
Добрый вечер, столкнулся с проблемой нарушения доступа для чтения 0х1110112. Задача - написать...

1
7639 / 6447 / 2940
Регистрация: 14.04.2014
Сообщений: 28,104
29.05.2018, 09:43 2
Проверку на пустоту туда добавь.
0
29.05.2018, 09:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2018, 09:43
Помогаю со студенческими работами здесь

вызвано исключение нарушение доступа для чтения
Выдаёт исключение на 35 строке, ругается на переменную nach. #include &quot;stdafx.h&quot; #include...

Нарушение доступа для чтения. this было 0xFFFFFFFFFFFFFFFF
Здравствуйте, суть проблемы : в программе создается массив объектов данного образца, а при...

Вызвано исключение: нарушение доступа для чтения
Всем привет! Пишу программу, которая должна записать в файл в первом столбике рандомную цифру или...

Вызвано исключение: нарушение доступа для чтения
Программа обрабатывает двумерный массив. На 45-й строке выдает ошибку. #include &quot;stdafx.h&quot;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru