Большинство людей используют указатели, подобные этому...
if ( p != NULL ) {
DoWhateverWithP();
}
Однако, если указатель по какой-либо причине является нулевым, функция не будет вызываться.
Мой вопрос: может ли быть более полезным просто не проверять NULL? Очевидно, что в критически важных системах безопасности это не вариант, но ваша программа, сбой в славе славы, более очевидна, чем функция, не вызываемая, если программа все еще может работать без нее.
Что касается первого вопроса, вы всегда проверяете NULL перед использованием указателей?
Во-вторых, рассмотрим, что у вас есть функция, которая принимает указатель в качестве аргумента, и вы используете эту функцию несколько раз для нескольких указателей во всей вашей программе. Вы считаете, что более полезно тестировать NULL в функции (преимущество в том, что вам не нужно проверять NULL по всему месту) или на указателе перед вызовом функции (преимущество не является накладными расходами от вызова функции )?