Нарушение прав доступа при чтении - C (СИ)
Формулировка задачи:
Список.
Не могу разобраться с двумя функциями, компилятор не находит синтаксических ошибок, а во время тестирования программки, вылазиет ошибка, названная в заголовке темы.#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> typedef struct Item { char data; struct Item *next; }Item; Item* reorg(Item*);//функция изменения строки Item* enter_Item(char*);//функция ввода данных в список char* ent_str();//функция ввода строки void print_sp(Item*); int main() { Item *spisok;//объявление списка char* stroka=ent_str(); spisok=enter_Item(stroka);//переделать строку в список print_sp(spisok);//вывести список на экран getch(); return 0; } Item* enter_Item(char *stroka) { Item *head, *last; int i=0; Item curr={stroka[i], NULL}; last=&curr; head=last; do { i++; last->next=(Item*)malloc(sizeof(Item)); last=last->next; last->next=NULL; last->data=stroka[i]; }while (stroka[i]!=NULL); return head; } void print_sp(Item *spisok) { while(spisok!=NULL) { printf("%c", spisok->data); spisok=spisok->next; }; }
Решение задачи: «Нарушение прав доступа при чтении»
textual
Листинг программы
Item curr={stroka[i], NULL}; last=&curr;
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Создается новый элемент списка -
curr
. - Значение нового элемента списка -
curr
, инициализируется какstroka[i]
, что предполагает, чтоstroka
является массивом строк. - Указатель
last
инициализируется как адрес нового элемента списка -curr
. Таким образом, код создает новый элемент списка и указывает на него указательlast
, что предполагает, чтоlast
является концом списка. Предполагается, что данная программа будет работать с динамическим списком, где каждый элемент - это структура данных, содержащая строку и указатель на следующий элемент списка. Важно отметить, что код не содержит никаких проверок на ошибки или обработку исключений, поэтому предполагается, что он будет выполняться в контролируемой среде без возможности сбоев или ошибок.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д