Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Бинарные деревья. Вывод потомка, находящего на заданное число уровней выше заданного элемента Здравствуйте, уважаемые форумчане! Продолжая изучать бинарные деревья, решил подумать о выгодности использования третьего указателя, а именно указателя на родительский элемент. Если кому-то интересно, можно найти в сети случаи его использования. Вот один из них, который я придумал: /* Дано бинарное дерево поиска (BST). Вывести родительский элемент для заданного узла, находящийся на n... https://www.cyberforum.ru/ cpp-beginners/ thread2485108.html Бинарные деревья. Вывод потомков для каждого из узлов бинарного дерева поиска C++
Здравствуйте, уважаемые форумчане! Продолжая изучать бинарные деревья, решил подумать о выгодности использования третьего указателя, а именно указателя на родительский элемент. Если кому-то интересно, можно найти в сети случаи его использования. Я пока нашел пару вариантов его использования. Вот один из них (и еще один в следующей теме). /* Дано бинарное дерево поиска (BST). Вывести каждый...
C++ Одинаковые переменные в разных .h Доброго времени суток. Есть у меня 2 .h файла (назовем их firstHeder, secondHeder) которые содержат в себе по одной одинаковой функции и одной одинаковой переменной. Так же есть класс (Назовем его MyClass), и у него есть свой .h файл и .cpp файл. В .cpp файле класса MyClass я подключаю firstHeder и secondHeder и выдается ошибка о повторе названий, объявлений. Как решить эту проблему правильно?... https://www.cyberforum.ru/ cpp-beginners/ thread2485100.html C++ Какое значение примет переменная x после выполнения следующего фрагмента программы https://www.cyberforum.ru/ cpp-beginners/ thread2485073.html
unsigned short int x,y; scanf("&d&d", &x, &y); x<<=y; при y, равном 8, x, равном 56506? В ответ введите шестнадцатиразрядное двоичное число.
C++ Крашится приложение при чтении адреса памяти
Здравствуйте. Мой скрипт работает с другой офисной программой с помощью инжекта, помогая клиенту автоматизировать некоторые действия. Мне необходимо проверять состояние чекбокса, затем устанавливать его, если условие подходящее. Дело в том, что все работает как нужно, но приложение крашится само по себе в разные моменты времени, независимо от действий пользователя. Т.е. может проработать час,...
C++ Сортировка по нескольким параметрам https://www.cyberforum.ru/ cpp-beginners/ thread2485061.html
Доброго времени суток, мне нужно сделать сортировку, по нескольким параметрам, т.е. сначало по имени, потом по номеру телефона, потом по улице, потом по номеру дома, естественно я могу это сделать, но если мне нужно будет отсортировать потом еще почему-то, то нужно будет добавлять много параметров, как я собирался делать: 1) Отсортировать по имени, записать индексы всех первых букв имени. 2)...
C++ Задача на инверсии Здравствуйте. Прошу помощи с задачей: "Во время лыжных соревнований N спортсменов стартуют с интервалом в 1 минуту. Скорость каждого лыжника на дистанции постоянна: i-й лыжник преодолевает 1 км за wi минут. Длина трассы равна L км. Считается, что i-й лыжник обогнал j-го (совершил обгон), если он стартовал позже j-го, а пришёл к финишу раньше него. Подсчитайте суммарное число совершённых во... https://www.cyberforum.ru/ cpp-beginners/ thread2485052.html C++ Время выполнении функции
Можно ли сделать так, что б к примеру, функция _getch(), если она не выполнилась(то есть она не вернула какое-то значение за определенное время) за определенное время, то пусть программа выполняет следующую строку?
C++ Неработающая нотация char* https://www.cyberforum.ru/ cpp-beginners/ thread2485027.html
Добрый день, господа и дамы. Столкнулся с такой проблемой: Изучаю тему "Строки и массивы строк". В данной теме сказано, что можно использовать char* для, например, написания какого-либо текста (char *message = "Hello!";). Но у меня почему-то выдает ошибки. Привожу пример программы и ошибок: Программа: #include <iostream> #include "../std_lib_facilities.h" #include <math.h> #include...
C++ Сортировка массива указателей на строки Здравствуйте. Есть две функции, которые используются для сортировки - одна, реализуя метод пузырьковой сортировки, вызывает в себе вторую, которая при необходимости меняет местами строки. Задание отсортировать строки в алфавитном порядке я выполнил, но в ходе работы у меня сначала получилось немного не то. Это самое не то от итогового результата по своей сути вроде бы не отличается, но нихрена... https://www.cyberforum.ru/ cpp-beginners/ thread2485018.html
Журнал событий C++
Есть объект. И есть 30 сигналов. У каждого сигнала есть своё одно состояние (либо авария(красный цвет), либо предупреждение( жёлтый цвет), либо нормальная работа «зелёный цвет»). Когда я нажимаю на условный 16 сигнал мой объект закрашивается допустим в зелёный цвет. Мне надо сделать так, что в журнале событий записалось, мол я выбрал 16ый сигнал и его состояние - зеленый. То есть я нажимаю...
C++ Написать программу решения системы линейных алгебраических уравнений
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
22.07.2019, 21:08 0

Кто отвечает за корректность аргументов функции? - C++ - Ответ 13733858

22.07.2019, 21:08. Показов 5025. Ответов 72
Метки (Все метки)

Ответ

Цитата Сообщение от rams Посмотреть сообщение
В языке c за корректность аргументов обычно отвечает вызывающая сторона.
обе стороны.
и это не зависит от языка.

есть такое понятие "инвариант".
это - способность функции сохранять работоспособность
независимо от корректности вызывающей стороны.

хороший код - инвариантен.

принцип простой:
все входящие аргументы должны быть проверены.
если аргументы не корректны,
необходимо уведомить об этом вызывающую сторону.

что касается сишки:
существуют кейсы, когда инвариант попросту не возможен.
например: printf, или классика жанра:
C
1
2
// функция в принципе не способна валидировать аргументы
int process(const int* array, const size_t count);
так уж устроен язык.
не всегда есть возможность проверить аргументы.
но если есть возможность обеспечить инвариант - его нужно обеспечить.

Вернуться к обсуждению:
Кто отвечает за корректность аргументов функции? C++
2
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.07.2019, 21:08
Готовые ответы и решения:

Есть функция с кучей аргументов, как её вызвать в другой функции (если половины аргументов у меня нет)?
Я конечно, понимаю, что на такие вопросы отвечают &quot;почитай книжку&quot;. Я читала, честное слово:)...

Странное расположение в памяти аргументов функции с неизвестным количество аргументов
Не могу понять, почему такая программа не работает, выдавая segmentation fault после распечатки...

Для разминки тем, кто спрашивает и тем, кто отвечает
Преамбула. Задача возникла не вдруг и не на пустом месте. Это попытка (возможно и не очень...

Кто отвечает на форумах?
Мне стало интересно кто отвечает на форумах? Этим людям заняться нечем чтоли, чтобы искать чьи то...

72
22.07.2019, 21:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2019, 21:08
Помогаю со студенческими работами здесь

Чат не отвечает, пока кто-либо не подключится
Всех приветствую. Столкнулся со следующей проблемой при написании простого чата по TCP/IP: после...

Можно ли наращивать количество аргументов функции? Можно ли вернуть количество аргументов функции?
К примеру есть примитивная запись int Funk(bool Er,int q1,int q2,int q3) {return 0;} В...

Корректность функции
Мне нужно чтобы не в процедуре проверялся ввод данных а в функции, как это сделать ? procedure...

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

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