structures et allocation - C - Programmation
Marsh Posté le 08-11-2005 à 16:57:40
Tu dois allouer si tu utilises un char* ou un char[]. Le mieux est d'ecrire un constructeur qui se charge de tout.
Marsh Posté le 08-11-2005 à 17:00:24
Trollable a écrit : Tu dois allouer si tu utilises un char* ou un char[]. Le mieux est d'ecrire un constructeur qui se charge de tout. |
ok .. merci . donc je dois allouer en dehors de ma structure ? et un constructeur c'est une fonction qui remplit tout ?
Marsh Posté le 08-11-2005 à 17:09:58
in_your_phion a écrit : je voudrai créer un structure qui code un nom et un prénom sous la forme de deux chaines de caractères alloués dynamiquement. Est ce que je dois faire un malloc avant et faire pointer les membres de ma structure dessus ou est-ce qu'il y a moyen d'allouer directement dans la struture ?! ou encore mieux ? |
Je conseille ceci :
|
Pour la création (par exemple) :
|
Nota : strdup() n'est pas standard mais POSIX, donc très portable.
On peut aussi envisager une solution complètement dynamique (constructeur) :
|
Marsh Posté le 08-11-2005 à 17:19:44
Emmanuel Delahaye a écrit : Je conseille ceci :
|
wow .. je connaissais pas strdup() mais c'est vraiment ce dont j'ai besoin. Juste pour savoir .. imaginons que je connaisse pas strdup(), comment faire avec malloc je vois pas
Marsh Posté le 08-11-2005 à 17:38:09
in_your_phion a écrit : wow .. je connaissais pas strdup() mais c'est vraiment ce dont j'ai besoin. |
Attention, car avec strdup() comme avec malloc(), il faut utiliser free() pour désallouer la mémoire lorsqu'on n'en a plus l'usage.
in_your_phion a écrit : Juste pour savoir .. imaginons que je connaisse pas strdup(), comment faire avec malloc je vois pas |
Pour reprendre l'exemple d'Emmanuel :
struct data record; |
Marsh Posté le 08-11-2005 à 18:06:21
Elmoricq a écrit : Attention, car avec strdup() comme avec malloc(), il faut utiliser free() pour désallouer la mémoire lorsqu'on n'en a plus l'usage.
|
merci mille fois
Marsh Posté le 08-11-2005 à 18:34:07
in_your_phion a écrit : wow .. je connaissais pas strdup() mais c'est vraiment ce dont j'ai besoin. Juste pour savoir .. imaginons que je connaisse pas strdup(), comment faire avec malloc je vois pas |
C'est pas très dur. malloc(), memcpy()...
http://mapage.noos.fr/emdel/clib.htm
Module STR
STR_dup()
Marsh Posté le 08-11-2005 à 16:49:54
bonjour,
je voudrai créer un structure qui code un nom et un prénom sous la forme de deux chaines de caractères alloués dynamiquement. Est ce que je dois faire un malloc avant et faire pointer les membres de ma structure dessus ou est-ce qu'il y a moyen d'allouer directement dans la struture ?! ou encore mieux ?
merci par avance