Это скорее вопрос о стиле программирования, чем о техничности: Должна ли моя функция C всегда требовать аргумента для длины массива, хотя функция не зависит от нее?
Итак, либо как это void foo(int* a, int size)
, либо как void foo(int* a)
например. когда функция просто манипулирует первыми 128 бит массива, должна ли функция требовать длину массива и в первую очередь проверять правильность длины массива, или я должен доверять вызывающему, что он следует документации, и только вызывает функцию с помощью правый размер массива?
Я новичок в C, поэтому я боюсь, что возможно переполнение буфера. Техническое обоснование того, почему одно лучше другого, было бы здорово. Спасибо!