Вы не можете сделать это в C. В буквальном смысле невозможно, без какой-либо дополнительной информации, найти размер массива, используя только указатель на него.
Языки, которые поддерживают запрос длины массива, делают это, передавая некоторую дополнительную информацию. В C вы также можете сделать это, но вы должны сделать это явно:
struct matrix {
int rows, cols;
int *data; // packed representation, or int **data;
};
int *findElements(struct matrix *matInput);
Как немного более продвинутый метод, вы можете поместить данные массива сразу после struct matrix
в память; это уменьшает количество необходимых обращений к указателю и, следовательно, немного быстрее. Но основная техника остается прежней.