0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 36
1

Вызвано исключение по адресу 0x59A5D3EC нарушение прав доступа

16.10.2018, 12:56. Показов 497. Ответов 2
Метки нет (Все метки)

C++ (Qt)
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
/**/
 
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include<iostream>
struct ListBook
{char izd[50];                                                      //Издание
 char vid[50];                                                 //журнал или газета
 char cena[20];                                                      //цена
 struct ListBook *next;                                             //указание на следующую структуру
};
typedef struct ListBook listnode;
typedef listnode *listnodeptr;
 
void insert(listnodeptr *,char[50],char[50],char[20]);
struct ListBook *create(void);                                      //функция создания списка (возвращает адрес его головы)
void list(ListBook *head);                                          // функция просмотра списка
struct ListBook *head;                                              // глобальная переменная, адрес головы списка
int main()
{  listnodeptr startptr=NULL;
    char item1[50],item2[50],item3[20];
    setlocale(0,"");
   head=create();
   list(head);
   printf("\nВведите дополнительную запись\n");
      printf("Введите название издания "); scanf_s("%s", item1);
        printf("Введите газета или журнал "); scanf_s("%s", item2);
        printf("Введите цену экземпляра "); scanf_s("%s", item3);
        insert(&startptr,item1,item2,item3);
        head=(ListBook *)malloc(sizeof(ListBook));
        list(startptr);
   free(head);
}
struct ListBook * create(void)
{  ListBook *p, *pred;
   char c;                                                         // pred – указатель на предыдущую структуру
   head=pred=p=(ListBook *)malloc(sizeof(ListBook));               //выделяем память для первой записи
   printf("Введите название издания "); scanf_s("%s", p->izd);
        printf("Введите газета или журнал "); scanf_s("%s", p->vid);
        printf("Введите цену экземпляра "); scanf_s("%s", p->cena);
   do { p=(ListBook *)malloc(sizeof(ListBook));
        printf("Введите название издания "); scanf_s("%s", p->izd);
        printf("Введите газета или журнал "); scanf_s("%s", p->vid);
        printf("Введите цену экземпляра "); scanf_s("%s", p->cena);
        pred->next=p; //ссылка из предыдущей записи на текущую
        pred=p; // сохранение адреса текущей записи в поле предыдущей
        printf(" Закончить? y/n  ");
        c=_getch();
       } while (c!='y');
   p->next=NULL;
   return head;
}
void list(ListBook *head)
{  ListBook *p;
   p=head;
   while (p!=NULL) 
   {  printf("\n  Название издания: %s",p->izd);
      printf("\n  Газета или журнал: %s",p->vid);
      printf("\n  Цена экземпляра: %s",p->cena);
      p=p->next; 
   }
   _getch();
}
 
 
void insert(listnodeptr *sptr, char value1[50], char value2[50], char value3[20])
{
   listnodeptr newptr,previousptr,currentptr;
newptr=(ListBook *)malloc(sizeof(ListBook));
if(newptr!=NULL)
{
    strcpy_s(newptr->izd,value1);
    strcpy_s(newptr->vid,value2);
    strcpy_s(newptr->cena,value3);
    newptr->next=NULL;
    previousptr=NULL;
    currentptr=*sptr;
    while (currentptr!=NULL && value1[0]>currentptr->izd[0])
    {
        previousptr=currentptr;
    currentptr=currentptr->next;
    }
if (previousptr==NULL)
    {
        newptr->next=*sptr;
        *sptr=newptr;
    }
else 
    {
        previousptr->next=newptr;
        newptr->next=currentptr;
    }
 
}
    
}
Пытаюсь сделать это: Структура содержит название издания, тип издания (газета или журнал), цена экземпляра. Изменять цену экземпляра заданного издания. Создавать список и добавлять новые издания так, чтобы названия были упорядочены по возрастанию.
Миниатюры
Вызвано исключение по адресу 0x59A5D3EC нарушение прав доступа  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2018, 12:56
Ответы с готовыми решениями:

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

Вызвано исключение по адресу 0x003F2357 в Лабораторна 15.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x
Что это такое и как это исправить? Вот фрагмент кода где и есть проблема: ... int size = 9;...

C++ Вызвано исключение по адресу 0x00346786 в Smooth_.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00
void getvector(string file_, vector&lt;double&gt; mass) { ifstream fin; fin.open(file_); if...

Вызвано исключение по адресу 0x010F2FF7 в Project25.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xFDFDF
Всплывает окно на 45ой строке с сообщением: &quot;Вызвано исключение по адресу 0x010F2FF7 в...

2
Эксперт С++
8719 / 4262 / 950
Регистрация: 15.11.2014
Сообщений: 9,669
16.10.2018, 13:32 2
C++
1
2
3
4
5
struct ListBook * create(void)
{  ListBook *p, *pred;   //<---- содержат мусор
   char c;                                                         
   head=pred=p=(ListBook *)malloc(sizeof(ListBook)); // ---1---
   printf("Введите название издания "); scanf_s("%s", p->izd);  // ---2---

может массив не вмещает в себя всю строчку?
0
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 36
16.10.2018, 13:35  [ТС] 3
Подскажите пожалуйста как это исправить
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2018, 13:35
Помогаю со студенческими работами здесь

Вызвано исключение по адресу 0x00B31BEF в Project.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDFDFE0
Написал программу, но выдает ошибку: Вызвано исключение по адресу 0x00B31BEF в Project.exe:...

Вызвано исключение по адресу 0x01068781 в 2nd.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCCCCCCCC
Доброго времени суток, кто может помочь по вопросу? Постоянно выбивает ошибку. Мне кажется, там еще...

Вызвано исключение по адресу 0x01361A1E в Matrix 1.0.exe: 0xC0000005: нарушение прав доступа при записи
Вызвано исключение по адресу 0x01361A1E в Matrix 1.0.exe: 0xC0000005: нарушение прав доступа при...

Вызвано исключение по адресу 0x01083191 в ConsoleApplication.exe: 0xC0000005: нарушение прав доступа при чтении по адрес
Вызвано исключение по адресу 0x01083191 в ConsoleApplication.exe: 0xC0000005: нарушение прав...


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

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

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