Creer une infinité de variables

cs_Darkan Messages postés 22 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 28 mars 2005 - 27 janv. 2005 à 17:04
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 28 janv. 2005 à 10:42
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

alkove Messages postés 37 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 6 mai 2005
27 janv. 2005 à 17:11
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]
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
27 janv. 2005 à 17:44
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..."
0
cs_Darkan Messages postés 22 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 28 mars 2005
27 janv. 2005 à 18:16
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 ?
0
alkove Messages postés 37 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 6 mai 2005
27 janv. 2005 à 18:46
>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
0

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

Posez votre question
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
28 janv. 2005 à 09:15
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);
0
alkove Messages postés 37 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 6 mai 2005
28 janv. 2005 à 10:17
Urg

sorry ^^
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
28 janv. 2005 à 10:42
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);
0