Tableaux en C-ANSI

[Résolu]
Signaler
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
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

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

C++ (@++)<!--
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
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!!!
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
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++ (@++)<!--
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
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) {
}
Messages postés
3
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
20 mars 2007

Existe t-il une fonction retournant la taille d'un tableau
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
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 ...