codice:
for(i=0; i<dim; i++){
        scanf("%d ", (p+i));

...
for(i=0; i<dim; i++){
        printf("%d ", *(p+i));
Hai fatto la funzione quadrato.Ogni numero viene elevato al quadrato.
Non usi un array di puntatori, usi un puntatore tramite il quale allochi dinamicamente un array di interi.