Question sur un tableau de pointeurs
tomtomtom
-
tomtomtom -
tomtomtom -
Bonsoir a tous !!
Alors, malgré des recherches poussées, je n'ai toujours pas compris comment faire un chose comme ce ci;
c'est un exemple pour me faire comprendre.
char *code[4];
int i;
code[0]=(char*)malloc(6*sizeof(char));
code[1]=(char*)malloc(6*sizeof(char));
code[2]=(char*)malloc(6*sizeof(char));
code[3]=(char*)malloc(6*sizeof(char));
for(i=0;i<4;i++)
{
gets(code[i]);
}
for(i=0;i<4;i++)
{
puts(code[i]);
}
Il s'agit donc d'un tableau de 4 pointeurs pointant vers des chaînes de 5 caractères ( si j'ai compris jusque la ^^)
J'ai deux questions;
1) Je voudrais savoir comment allouer dynamiquement le nombre de pointeur dans ce tableau car il devra varier dans mon programme, genre;
char **code
avec ensuite un malloc, mais alors je ne comprends pas comment, un INT, un CHAR ?, j'ai essayé plusieurs possibilités... rien n'y fait !
2)
Est ce que ceci
code[0]=(char*)malloc(6*sizeof(char));
code[1]=(char*)malloc(6*sizeof(char));
code[2]=(char*)malloc(6*sizeof(char));
code[3]=(char*)malloc(6*sizeof(char));
se suit dans la memoire de l'ordi, car je souhaiterai faire
code[0]=(char*)malloc(4*6*sizeof(char));
Voila, j'ai besoin d'aide la dessus, je remercie deja celui qui saura faire la lumiere... car faut absolument que je comprenne pour un projet...
Tchuss
Alors, malgré des recherches poussées, je n'ai toujours pas compris comment faire un chose comme ce ci;
c'est un exemple pour me faire comprendre.
char *code[4];
int i;
code[0]=(char*)malloc(6*sizeof(char));
code[1]=(char*)malloc(6*sizeof(char));
code[2]=(char*)malloc(6*sizeof(char));
code[3]=(char*)malloc(6*sizeof(char));
for(i=0;i<4;i++)
{
gets(code[i]);
}
for(i=0;i<4;i++)
{
puts(code[i]);
}
Il s'agit donc d'un tableau de 4 pointeurs pointant vers des chaînes de 5 caractères ( si j'ai compris jusque la ^^)
J'ai deux questions;
1) Je voudrais savoir comment allouer dynamiquement le nombre de pointeur dans ce tableau car il devra varier dans mon programme, genre;
char **code
avec ensuite un malloc, mais alors je ne comprends pas comment, un INT, un CHAR ?, j'ai essayé plusieurs possibilités... rien n'y fait !
2)
Est ce que ceci
code[0]=(char*)malloc(6*sizeof(char));
code[1]=(char*)malloc(6*sizeof(char));
code[2]=(char*)malloc(6*sizeof(char));
code[3]=(char*)malloc(6*sizeof(char));
se suit dans la memoire de l'ordi, car je souhaiterai faire
code[0]=(char*)malloc(4*6*sizeof(char));
Voila, j'ai besoin d'aide la dessus, je remercie deja celui qui saura faire la lumiere... car faut absolument que je comprenne pour un projet...
Tchuss
A voir également:
- Question sur un tableau de pointeurs
- Tableau word - Guide
- Trier un tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
1 réponse
En gros, est ce que j'ai bien compris donc :
void generateur(int version, int taille,int nbpartie, char **code)
{
int i;
**code=malloc((nbpartie)*sizeof(char));
if(**code==NULL)
{
printf("Impossible d'allouer la memoire !!!");
}
for(i=0;i++;i<(nbpartie))
{
*(code+i)=malloc((taille+1)*sizeof(char));
if(*(code+i)==NULL)
{
printf("Impossible d'allouer la mÈmoire !!!");
}
(*(code+i))[taille+1]='\o'
}
}
je suis pas sur d'avoir tout compris, j'espère avoir un tableau de "nbpartie" pointeurs vers des chaines de "taille" caracteres .
pour que la suite de mon programme remplisse ces cases par des lettres alléatoires....
est-ce bien ça ?
void generateur(int version, int taille,int nbpartie, char **code)
{
int i;
**code=malloc((nbpartie)*sizeof(char));
if(**code==NULL)
{
printf("Impossible d'allouer la memoire !!!");
}
for(i=0;i++;i<(nbpartie))
{
*(code+i)=malloc((taille+1)*sizeof(char));
if(*(code+i)==NULL)
{
printf("Impossible d'allouer la mÈmoire !!!");
}
(*(code+i))[taille+1]='\o'
}
}
je suis pas sur d'avoir tout compris, j'espère avoir un tableau de "nbpartie" pointeurs vers des chaines de "taille" caracteres .
pour que la suite de mon programme remplisse ces cases par des lettres alléatoires....
est-ce bien ça ?