Ответ будет разным для C и C ++.
C ++ имеет ссылки. Единственная разница между передачей указателя и передачей ссылки состоит в том, что указатель может быть нулевым. Итак, если автор вызываемой функции ожидает аргумент-указатель и забывает сделать что-то вменяемое, когда оно пустое, он глуп, сумасшедший или пишет C-with-классы.
В любом случае, дело не в том, кто носит шляпу ответственности. Чтобы написать хорошее программное обеспечение, оба программиста должны сотрудничать, и все программисты обязаны 1 ° избегать особых случаев, которые требуют такого решения, и 2 °, если это не удается, напишите код, который взрывается недвусмысленным и задокументированным способом, чтобы помочь с отладкой.
Так что, конечно, вы можете указать и посмеяться над вызывающим абонентом, потому что он все испортил и "все, что не определено, не определено" и ему пришлось потратить один час на отладку простой ошибки нулевого указателя, но ваша команда потратила на это драгоценное время.