Вы не можете. Единственное, что foo()
знает pa
, это то, что это указатель, является ли он нулевым указателем или нет, и если он не нулевой, на что он указывает. Он не может определить, указывает ли он на один объект или на первый элемент массива.
Если возможно, вам, вероятно, следует foo()
, поэтому вызывающий должен передать дополнительную информацию:
void foo(double *pa, size_t count) {
/* ... */
}
(Примечание: вы должны объявить тип возврата foo
.)