Declarer un tableau de taille variable [Résolu]

Signaler
Messages postés
84
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
7 février 2010
-
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
Bonjour

comment déaclarer un tableau avec un taille déclaré dans une variable ?

taille = 10;
tableau[taille]; ne marche pas

merci

6 réponses

Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
int taille=10;
int *tableau;

tableau=new int[taille];

delete[] tableau;//a ne pas oublier, pour liberer la mémoire occupé du tableau,une foi que tu n'en a plus besoin bien sur
Messages postés
181
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
26 janvier 2011
1
Salut!

C'est normal, la taille d'un tableau se définie à son initialisation.
Il faut donc que tu utilises la fonction malloc(), qui permet une allocation dynamique.
Messages postés
181
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
26 janvier 2011
1
a oui forcément c'est plus simple :P
En supposant qu'il fait bien du C++ et non du C  ;) ...
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
ben sinon il c'est trompé,dans la catégorie pour poster ce message
Messages postés
181
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
26 janvier 2011
1
a oui effectivement :P

Excuse.
Bon ok je me tais  ->[]
 :)
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
int variable = 8;
char tab[variable]

fonctionne sur certaine norme je crois.
En tout cas, il me semble que cela fonctionne et soit correct:

void function(int val)
{
float tab[val];
}

Je sais plus si c'est le cas du C/C++, mais sur certain langage c'est bien accepté. Dans le meme genre faudrait voir avec:

{
...
int value = 8;
...
{
float tab[value];
...
}
...
}

Encore une fois, faudrait vérifier.