se un array v ha r righe e c colonne, per accedere all'elemento (i, j) il compilatore si calcola la posizione v[i][j] con l'operazione:

(i - 1) * c + j

cioè prima delle'elemento (i, j) ci sono tutti quelli delle prime (i-1) righe, onguna delle quali contiene c colonne.

per questo devono essere note tutte le dimensioni, tranne al più la prima, perche il compilatore accede agli elementi come se fossero disposti in un unico array lineare. In particolare, se v è bidimensionale deve essere noto al compilatore l numero di colonne.

Se tu dici alla funzione che v è un int**, il compilatore non saprebbe come accedere a v[i][j], per questo nella funzione devi dichiarare

int v[][10]

come parametro,ad esempio, oppure continui ad avere
int** v

ma devi passare anche il numero di colonne e per accedere all'elemento fai:

v[(i - 1) * c + j ]