jeunestomac | Bonsoir a tous, J'ai un soucis, alors j'ai fais une fonction qui rempli un tableau par des caracteres au hasard. Ce tableau, je sais l'utiliser dans ma fonction mais impossible de l'utiliser dans le MAIN et je ne comprend pas pourquoi.
Voici des bouts de mon code; le MAIN
Code :
- char **code;
- int v,i,p,e,f;
-
- v=version();
- i=taille_combi();
- p=nb_partie();
- generateur(v,i,p,code);
|
Et la fonction;
Code :
- void generateur(int version, int taille,int nbpartie, char **code)
- {
- int i,j,k,l,x;
- char couleur[]={'b','c','g','j','m','n','r','v'};
- code=malloc(nbpartie * sizeof(char*));
- if (code == NULL)
- {
- printf("Impossible d'allouer la memoire necessaire pour les parties !!!\n" );
- }
- for (i = 0; i < nbpartie; i++)
- {
- code[i] = malloc((taille + 1) * sizeof(char));
- if (code[i] == NULL)
- {
- printf("Impossible d'allouer la memoire pour le code numero [%d] !!!\n",(i+1));
- }
- code[i][taille] = '\0';
- }
- srand(time(NULL));
- for (i = 0; i < nbpartie; i++)
- {
- for (j = 0; j < taille; j++)
- {
- if(version==1)
- {
- k=rand()%8;
- code[i][j] = couleur[k];
- }
- else
- {
- do
- {
- k=rand()%8;
- x=0;
- for(l = 0; l < (j+1); l++)
- {
- if( code[i][l] == couleur[k])
- {
- x=1;
- }
- else if( l==j)
- {
- code[i][j] = couleur[k];
- }
- }
- }
- while(x!=0);
- }
- }
- }
- }
|
donc, si je place ceci; puts(code[3]); a la fin de la fonction, je sais afficher une ligne du code, tandis que si je le mets dans le main, ça plante !!! Merci pour ceux qui sauraient m'eclairer sur la raison pour laquelle je n'y arrive pas... Tchuss.
|