Bonjour,
J'ai eu un cours d'amphi dernierement ou le prof expliquait que, depuis la norme de 99, il est possible de déclarer un tableau de cette manière :
Cependant, cela est accepté car ici n est une variable locale. Si nous avions utilisé une variable de classe statique, alors cela aurait été refusé à la compilation. Je lui ai demandé pourquoi, mais je n'ai pas vraiment compris son explication (il est parti dans un délire avec la pile....)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int f(int n) { int t[n]; ... }
De retour chez moi, je test donc un petit programme avec une variable globale:
Et ça marche... :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <stdio.h> int m = 5; void f() { int t[m]; int i; for (i = 0 ; i < m ; i++) { t[i] = i; printf("t[%d] = %d\n", i , t[i]); } } main() { f(); }
Y a t il quelqu'un pour m'expliquer réellement ce qu'il se passe depuis cette norme de 99 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 kal@vaio ~ $ ./test t[0] = 0 t[1] = 1 t[2] = 2 t[3] = 3 t[4] = 4![]()
Partager