Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2044 connectés 

  FORUM HardWare.fr
  Programmation

  [c] Structure et allocation de mémoire dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c] Structure et allocation de mémoire dynamique

n°177369
chaica
Posté le 16-07-2002 à 22:04:16  profilanswer
 

j'ai une structure toute simple
 
struct machin{
      char nom[30];
      ...
} mac
 
et je voudrais utiliser malloc mais lorsque je fais soit dans la structure :
char* nom = (char*)malloc(30 * sizeof(char));
 
ou en dehors de la structure :
mac.nom = (char*)malloc(30 * sizeof(char));
 
il mejette. Une idée?
 
CHaiCA
 

mood
Publicité
Posté le 16-07-2002 à 22:04:16  profilanswer
 

n°177374
chrisbk
-
Posté le 16-07-2002 à 22:06:48  profilanswer
 

tableau alloué statiquement => pas besoin de malloc
 
sinon a l'avenir c plus simple si tu donne l'erreur de compilation renvoyée.....

n°177376
chaica
Posté le 16-07-2002 à 22:08:44  profilanswer
 

Non mais justement je ne veux plus qu'il soit alloué statiquement. Je veux virer le [30]
 
CHaiCA


Message édité par chaica le 16-07-2002 à 22:09:11
n°177379
verdoux
And I'm still waiting
Posté le 16-07-2002 à 22:09:43  profilanswer
 

Tu fais soit:

Code :
  1. struct machin{
  2.      char* nom;
  3.      ...
  4. } mac;
  5. mac.nom = (char*)malloc(30 * sizeof(char));


 
soit

Code :
  1. struct machin{
  2.      char nom[30];
  3.      ...
  4. } *mac;
  5. mac = (struct machin *) malloc(sizeof(struct machin));


n°177395
kjus
Posté le 16-07-2002 à 22:25:37  profilanswer
 

ca devrait marcher ca :
mac.nom = (char*)malloc(30 * sizeof(char));
avec la struct machin{
char *nom;
...
}mac;

n°177401
chaica
Posté le 16-07-2002 à 22:29:25  profilanswer
 

Verdoux : j'avais deja essayé ta 1ere solution et ca ne marchait pas. Bizarrement j'ai déplacé la déclaration d'un fichier (je l'ai mise juste après la structure) et la compilation est passée.
 
CHaiCA

n°177436
darkoli
Le Petit Dinosaure Bleu
Posté le 16-07-2002 à 23:07:32  profilanswer
 

Une petite remarque : nom[30] est une chaîne de caractères ne pouvant comporter que 29 caractères plus '\0' en position 29.
enfin c'est au cas où.  :D


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [c] Structure et allocation de mémoire dynamique

 

Sujets relatifs
gestion de la mémoire ?[Perl] Mémoire partagé en multi-thread
Allocation memoire et initialisation par memset.menu dynamique et popup
[C++] Libération de mémoire.Pb de mémoire sous Excel
Trou de mémoire[VC++] Creation d'ID en dynamique
Nom de cette structure: séquence de séquences ? 
Plus de sujets relatifs à : [c] Structure et allocation de mémoire dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR