Peut-on faire ce genre de chose en C?

J ai un prog qui marche avec l exemple1, mais peut etre que ce n est pas correct au niveau de la gestion de la mémoire vu que la taille et la declaration se font apres l instruction "int n = taille("matrice.txt");"
pour l'exemple2 j ai un petit doute par rapport au fait que la taille est fonction d un argument...

Si c est correct cela permet de s'affranchir de devoir faire des listes chainees meme si ca a ses avantages ...

exemple1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
int n = taille("matrice.txt");
adj tab_adj[n];
/* etc */
exemple2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
void fonction(int n)
{
    adj tab_adj[n];
    /* etc */
}
Merci d'avance pour vos réponses !