Ciao,

non vorrei iniziare a sparare cavolate e spero che qualche del forum possa smentirmi subito nel caso mi sbaglio:

1) sizeof() non è una funzione di libreria ma un'operatore del linguaggio, quindi intrinseco al compilatore. Quando compili un codice con una chiamata del tipo:
codice:
int array[10];
sizeof(array)
il compilatore si comporta come se tu avessi scritto (per comprenderci): "sizeof(int *)*10".
Questo non accade se invece array fosse un int*.

2) l'allocazione dinamica presuppone che tu abbia fatto una malloc (o simile)...ma, qualsiasi funzione tu abbia usato per allocare, devi aver specificato la dimensione dell'array (con una cosa del tipo: malloc(10*sizeof(int))! Quindi...a cosa ti serve usare sizeof() per ricavare la dimensione?

3) Non credo che questo sia corretto (anche se non comporta errori di compilazione...almeno sul tuo compilatore ):
codice:
scanf("%d", &dim);
int testArray[dim];
A cosa servirebbe l'allocazione dinamica se fosse possibile fare una cosa del genere?