Allora ... l'ultimo suggerimento che ti avevo dato era relativo al codice che mi avevi mostrato (con l'allocazione dell'array nel main).

Se vuoi allocare la memoria nella funzione, allora devi inserire all'inizio

codice:
int inserimento(int **arr);

nel main


codice:
	n = inserimento(&array);
e la funzione

codice:
int inserimento (int **arr)
{
    cout << "Quanti numeri: ";
    cin >> n;
    
    *arr = (int *) malloc (n*sizeof(int));

    for (i = 0; i < n; i++)
    {
	cout << "Numero "<< i+1 <<" : ";
	cin >> (*arr)[i];
    }

   return n;
}

EDIT: ho aggiornato il codice ... fai attenzione ...