Tableaux en C-ANSI

Résolu
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 - 29 nov. 2006 à 19:24
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 19 mars 2007 à 20:54
Salut!


J'ai une petite question.

Est ce que en C-ANSI il est autorisé de faire une declaration de tableau avec une taille definie par une variable ?

Par exemple:

void main()

{

    int n=10;

    int tab[n];

    ...

    ...

}

<hr size="2" width="100%" />Trafic web gratuit!!!

6 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
29 nov. 2006 à 19:31
Non. La taille d'un tableau doit être fixe et définie au début de la fonction.

C++ (@++)<!--
3
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
30 nov. 2006 à 13:33
Merci pour les reponces.

En fait c'est un prof qui m'a dis que c'etait possible de faire la
declaration d'un tableau d'une taille variable, alors qu'avant j'ai
toujours cru que c'etait impossible. En effet ce genre de declaration
n'est compatible qu'avec les compilateurs en norme C99, mais pas ANSI.

<hr size="2" width="100%" />Trafic web gratuit!!!
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
29 nov. 2006 à 19:36
Ou plutôt, dès qu'il est déclaré (dans le cas du C++)

On peut cependant utiliser des constantes. Une macro par exemple:

#define N 10

int tab[N];

C++ (@++)<!--
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
29 nov. 2006 à 19:49
Salut:

Si tu veux que la taille de ton tableau soit variable utilises ceci:

int n = 10;

int * array = (int *) malloc (sizeof (int) * n);
if (array != NULL) {
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SERGIOOO27 Messages postés 3 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 20 mars 2007
19 mars 2007 à 10:21
Existe t-il une fonction retournant la taille d'un tableau
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
19 mars 2007 à 20:54
Salut:

En C, tu dois créer une variable pour se renseigner sur la taille du tableau.



(que tu l'incrémente si tu ajoute un élément, et la décrémente dans le cas d'un décallage ou suppression.)



C'est le même principe qui s'applique avec C++, Java ..., mais comme on fait abstraction (encapsulation) on ne voit pas le détails. Et on utilise tout court une fonction de type length () ou autre.




__________________________________________________________
A.B. :  La lumière voyage plus vite que le son. C'est pourquoi certaines personnes paraissent brillantes jusqu'à ce qu'elles commencent à parler ...
0
Rejoignez-nous