Re: affectation d'une union
Citation:
Envoyé par Man_Utd
Bonjour,
j'ai une union de ce type
Code:
1 2 3 4
| typedef union valeur{
char *nom;
int val;
} VALEUR; |
je voudrais savoir comment faire pour affecter b à a.
Par exemple
Valeur a,b;
Si je fais
a=b;
je ne sais pas comment savoir si b est un char* ou un int -> cette ligne n'est pas correcte.
Il me faut savoir car pour effectuer l'affectation dans le cas du char*,il faudra faire une allocation memoire.
Merci
Oula j'ai jamais poster aussi tôt moi, alors attention.
Pour affecter a à b la meilleur méthode reste a=b et oui
b n'est pas et ne sera jamais un char*, a.nom est un char*
Lors de l'affectation a=b,
b.nom pointera sur la meme zone memoir que celle ou pointe a.nom (i.e si tu modifies b.nom ca modifie a.nom)
Re: affectation d'une union
Citation:
Envoyé par Skyrunner
Citation:
Envoyé par Man_Utd
Bonjour,
j'ai une union de ce type
Code:
1 2 3 4
| typedef union valeur{
char *nom;
int val;
} VALEUR; |
je voudrais savoir comment faire pour affecter b à a.
Par exemple
Valeur a,b;
Si je fais
a=b;
je ne sais pas comment savoir si b est un char* ou un int -> cette ligne n'est pas correcte.
Il me faut savoir car pour effectuer l'affectation dans le cas du char*,il faudra faire une allocation memoire.
Merci
Oula j'ai jamais poster aussi tôt moi, alors attention.
Pour affecter a à b la meilleur méthode reste a=b et oui
b n'est pas et ne sera jamais un char*, a.nom est un char*
Lors de l'affectation a=b,
b.nom pointera sur la meme zone memoir que celle ou pointe a.nom (i.e si tu modifies b.nom ca modifie a.nom)
Merci ,est ce que cela est egalement valable pour l'affectataion d'un arbre ?
Par exemple si mon arbre b contient 3*x+1
a=b;
si je fais a->type ,j'aurais que a->type est un operateur(type que j'ai definit dans un enum)
ESt ce que faire a=b est equivalent à a=Copie(b)
Copie servant à faire une copie de l'arbre b?
Re: affectation d'une union
Citation:
Envoyé par Man_Utd
Merci ,est ce que cela est egalement valable pour l'affectataion d'un arbre ?
Par exemple si mon arbre b contient 3*x+1
a=b;
si je fais a->type ,j'aurais que a->type est un operateur(type que j'ai definit dans un enum)
Est ce que faire a=b est equivalent à a=Copie(b)
Copie servant à faire une copie de l'arbre b?
D'une façon générale, l'affectation d'une structure ou d'une union, revient à faire une copie bit à bit de l'objet concerné. Les objets pointés ne sont évidemment pas recopiés.