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