Creer une infinité de variables

Signaler
Messages postés
22
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
28 mars 2005
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
Bonjour a tous!
J'aimerais savoir si il est possible de creer une infinité de variables, c'est a dire de faire par exemple: int "tableau"&x avec x qui varie de 1 a 10 par exemple.

Je pense pas que ca soit possible mais y doit bien exister un moyen de contourner le probleme

Merci d'avance^^

7 réponses

Messages postés
37
Date d'inscription
jeudi 27 mars 2003
Statut
Membre
Dernière intervention
6 mai 2005

salut



vi il faut utiliser un tableau

si tu veut 50 variable int :



int *mon_tableau;



mon_tableau = (int*) malloc (sizeof(int)*50);



ta première variable s'appelera mon_tableau[0]

la deuxième mon_tableau[1]

etc ... jusqu'a mon_tableau[49]
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
10
et puis tu ne peux pas créer une infinité de variables, tu es toujours limité par la memoire !
Bob...

"La chance accorde ses faveur aux esprits avertis..."
Messages postés
22
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
28 mars 2005

comme ca, c'est pas mal.

mais est ce que j'ai le droit de faire:
mon_tableau = (int*) malloc (sizeof(int)*x);

pour pouvoir creer autant de variables que je le veux?

en fait, je voudrais creer des matrices de tailles aleatoires "stocker" des niveaux et j'aimerais que les niveaux s'enchainent indefiniment, mais avec un moyen de retour en arriere.

Alors, possible ?
Messages postés
37
Date d'inscription
jeudi 27 mars 2003
Statut
Membre
Dernière intervention
6 mai 2005

>mais est ce que j'ai le droit de faire:
>mon_tableau = (int*) malloc (sizeof(int)*x);



oui ta le droit.



pour des matrices 4*4 par exemple




int x=4, y=4, i;

int **matrice;

// deux étoiles pour deux niveaux, il faudrait que tu regarde dans un tuto ou un livre pour plus de détails



matrice = (int**) malloc (sizeof(int)*x);



for (i=0; i<y; i++)

*matrice = (int*) malloc (sizeof(int)*y);



et apres tu accèdes a ta matrice comme ceci:

matrice[x][y] avec x et y compris entre 0 et 3
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
alkove -> il y aune petite erreur (tu écrase à chaque boucle le premier sous-tableau de la matrice):

for (i=0; i<y; i++)
matrice[i] = (int*) malloc (sizeof(int)*y);
Messages postés
37
Date d'inscription
jeudi 27 mars 2003
Statut
Membre
Dernière intervention
6 mai 2005

Urg

sorry ^^
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Je viens d'en voir une autre : la boucle for doit se faire sur x et pas y.

matrice = (int**) malloc (sizeof(int)*x);

for (i=0; i<x; i++)
matrice[i] = (int*) malloc (sizeof(int)*y);