Исключения на Си - C (СИ)
Формулировка задачи:
Добрый день! В нижестоящем коде в функции pop необходимо удалить элемент и вернуть число, которое находилось под этим элементом. Однако, может возникнуть ситуация, например, когда массив элементов пуст, а функцию вызвали, и в данной ситуации непонятно, что возвращать. На С++ для этого есть исключения, а как с такими задачами справляются программисты на Си?
struct Vector { int lenght; int max_Numbers_Of_Elements; int *element_Of_Array; }; int pop(vector *Current_Vector) { int number_Of_Element_For_Pop = 0; int removable_Number = 0; //---------------------------------- puts("What's element you want insert?"); scanf("%d", &number_Of_Element_For_Pop); //---------------------------------- if ((Current_Vector->lenght) > 0) { //----------------------------------Здесь происходит собственно удаление и перезапись памяти removable_Number = (Current_Vector->element_Of_Array)[number_Of_Element_For_Pop]; //---------------------------------- } else { //Здесь должно быть некое исключение ; } return removable_Number; }
Решение задачи: «Исключения на Си»
textual
Листинг программы
ASSERT(Current_Vector->length > 0);
Объяснение кода листинга программы
Список действий в коде может быть таким:
- Проверка условия ASSERT(Current_Vector->length > 0);
- Если условие ложно (то есть Current_Vector->length <= 0), то программа выводит сообщение об ошибке и останавливается.
- Если условие истинно (то есть Current_Vector->length > 0), то программа продолжает работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д