[C] J'ai une question...
Résolu
pweteur
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
pweteur Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
pweteur Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
Bonsoir à tous voilà enfaite ma question est : pourquoi parfois je peut voir dans certaint programme des pointeurs sur des structures mais dans une structure différente, Je m'explique.
On dit que j'ai la structure
struct unestruct {
char *unchar;
int monint;
unestruct *next;
autrestrcut *pointeur; //Cette autre structure elle peut servire à quoi? et pk on peut la mettre ?
}
Si vous pouvez m'éclairer...
On dit que j'ai la structure
struct unestruct {
char *unchar;
int monint;
unestruct *next;
autrestrcut *pointeur; //Cette autre structure elle peut servire à quoi? et pk on peut la mettre ?
}
Si vous pouvez m'éclairer...
5 réponses
Bah ca depend du programme :-) En général c'est que ta structure unestruct est dépendante d'une structure de type autrestrcut et qu'on veut la stocker à l'exterieur de la structure unestruct. Les pointeurs ne servent pas forcément à faire des listes chainées, même si c'est l'exemple le plus classique.
Un exemple :
Suppose que tu veuilles faire une liste chainées génériques, la seule façon de t'en sortir c'est de créer une liste chainée de pointeurs générique (de type void *) ce qui donne :
Ca répond à ta question ?
Bonne chance
Un exemple :
Suppose que tu veuilles faire une liste chainées génériques, la seule façon de t'en sortir c'est de créer une liste chainée de pointeurs générique (de type void *) ce qui donne :
typedef struct cell{ struct maillon * next; void * data; // à cette adresse j'ai ma structure, mon int, ce que je veux en fait } cell_t; typedef struct cell * list;
Ca répond à ta question ?
Bonne chance
merci de ta réponse , donc si je comprend bien l'autre structure, on y a accés depuis la premiére structure ? et le type void je le capte difficilement... peut tu me faire un exemple de type void * pour que je comprenne ce type?
oui, tu peu y acceder par l'autre structure.
Une structure, est une variable, elle peut donc être membre d'une autre structure.
struct essai{struct Structure2* s2;};
tu déclare ta variable :
essai *s1;
tu acede à la structure s2:
s1->s2
Pour le void, le plus simple est un exemple par la fonction.
Imagine tu créé une fonction qui utilise une autre fonction de façon générique (par exemple résolution d'une intégrale)
int integrale(void* fonction_a_integrer(void*),(void*) paramètre);
cette fonction est capable de résoudre l'integrale de n'importe quelle fonction avec n'importe quell type.
int* fact(int* N){//...}
double* sqrt(double* a){...}
double *a=5e6;
int* b=2;
tu peux ensuite faire :
integrale((void*)fact,(void*)b);
integrale((void*)sqrt,(void*)a);
C'est entre autre le fonctionnement des thread, où tu fourni une fonction et des paramètres, ne connaissant pas le type a priori, il faut passer par les pointeurs.
Une structure, est une variable, elle peut donc être membre d'une autre structure.
struct essai{struct Structure2* s2;};
tu déclare ta variable :
essai *s1;
tu acede à la structure s2:
s1->s2
Pour le void, le plus simple est un exemple par la fonction.
Imagine tu créé une fonction qui utilise une autre fonction de façon générique (par exemple résolution d'une intégrale)
int integrale(void* fonction_a_integrer(void*),(void*) paramètre);
cette fonction est capable de résoudre l'integrale de n'importe quelle fonction avec n'importe quell type.
int* fact(int* N){//...}
double* sqrt(double* a){...}
double *a=5e6;
int* b=2;
tu peux ensuite faire :
integrale((void*)fact,(void*)b);
integrale((void*)sqrt,(void*)a);
C'est entre autre le fonctionnement des thread, où tu fourni une fonction et des paramètres, ne connaissant pas le type a priori, il faut passer par les pointeurs.
Salut,
En fait tu n'as qu'à te dire qu'une structure c'est comme une variable comme une autre.
Par exemple tu as la structure fiche d'identité qui contient les variables nom prénom adresse âge etc
Ensuite tu as la structure CV, qui contient la structure fiche d'identité, les variables cursus, jobs, activités, langues parlées, etc
Ce qui donne bien une structure dans une autre structure, mais tu as quand même accès à la fiche d'identité si jamais tu n'as besoin que de cela :)
En fait tu n'as qu'à te dire qu'une structure c'est comme une variable comme une autre.
Par exemple tu as la structure fiche d'identité qui contient les variables nom prénom adresse âge etc
Ensuite tu as la structure CV, qui contient la structure fiche d'identité, les variables cursus, jobs, activités, langues parlées, etc
Ce qui donne bien une structure dans une autre structure, mais tu as quand même accès à la fiche d'identité si jamais tu n'as besoin que de cela :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question