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

  FORUM HardWare.fr
  Programmation
  C++

  [C] != entre < char tmp[10]; > et < char *tmp = (void *)malloc(10); >?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] != entre < char tmp[10]; > et < char *tmp = (void *)malloc(10); >?

n°276853
juju-le-ba​rbare
Posté le 28-12-2002 à 15:44:30  profilanswer
 

Bonjour,
 
Quelle est la différence entre les 2 (voir sujet du topic) dans l'utilisation ?
 
 
Merci,
@+
juju


---------------
Du temps à perdre ? -> http://www.juju-le-barbare.fr.fm
mood
Publicité
Posté le 28-12-2002 à 15:44:30  profilanswer
 

n°276855
youdontcar​e
Posté le 28-12-2002 à 15:47:09  profilanswer
 

char tmp[10];
 
alloué globalement (1) ou dans une fonction, sur la pile (2). durée de vie : jusqu'à la fin du programme (1) / fin de la fonction (2).
 
char* tmp = malloc
 
allocation dynamique. durée de vie : jusqu'à ce que tu libères avec free().

n°276856
antp
Champion des excuses bidons
Posté le 28-12-2002 à 15:48:07  profilanswer
 

Si je dis pas de bêtises, le premier est alloué sur le stack, alors que ce n'est pas forcément le cas du deuxième...
 
edit: un peu grilled [:jofission]


Message édité par antp le 28-12-2002 à 15:48:49

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°276857
juju-le-ba​rbare
Posté le 28-12-2002 à 15:52:15  profilanswer
 

Merci à vous,
 
Donc l'allocation dynamique m'a l'air d'avoir moins d'avantages, je me trompe ?
Et si je ne libère pas avec free, je risque quoi lorsque main se termine ?
 
++
juju


---------------
Du temps à perdre ? -> http://www.juju-le-barbare.fr.fm
n°276861
youdontcar​e
Posté le 28-12-2002 à 15:54:31  profilanswer
 

>> Donc l'allocation dynamique m'a l'air d'avoir moins d'avantages, je me trompe ?
 
au contraire. tu veux lire des données d'un fichier, tu ne connais pas le nombre à l'avance ... si tu déclares un truc statique tu l'as dans l'os. l'alloc dynamique est la plus utilisée. l'alloc statique (sur la stack) sert au variables temporaires (compteurs, pointeurs, etc.). l'alloc globale est à proscrire.
 
>> Et si je ne libère pas avec free, je risque quoi lorsque main se termine ?
 
'memory leaks', littéralement fuites de mémoire. à proscrire également. tout ce que tu alloues, tu _dois_ le désallouer.

n°276864
juju-le-ba​rbare
Posté le 28-12-2002 à 16:01:17  profilanswer
 

OK :)
 

youdontcare a écrit :

>> Donc l'allocation dynamique m'a l'air d'avoir moins d'avantages, je me trompe ?
 
au contraire. tu veux lire des données d'un fichier, tu ne connais pas le nombre à l'avance ... si tu déclares un truc statique tu l'as dans l'os. l'alloc dynamique est la plus utilisée. l'alloc statique (sur la stack) sert au variables temporaires (compteurs, pointeurs, etc.). l'alloc globale est à proscrire.
 
>> Et si je ne libère pas avec free, je risque quoi lorsque main se termine ?
 
'memory leaks', littéralement fuites de mémoire. à proscrire également. tout ce que tu alloues, tu _dois_ le désallouer.


---------------
Du temps à perdre ? -> http://www.juju-le-barbare.fr.fm

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

  [C] != entre < char tmp[10]; > et < char *tmp = (void *)malloc(10); >?

 

Sujets relatifs
Malloc sous WindowsConvertir char[]
[C] Gérer 'CHAR_BIT != 8' ?Fonctions pour passer un int vers un char et une chaine vers un int ?
char buf[255] ou char buf[256] ?C++ : delete d'un char * : quelle est la bonne solution ?
Formatage date sous ORACLE et PHP [Resolu avec TO_CHAR]String To Char Help
(malloc : question toute bete)[c] ya un truc que je capte po avec scanf et les char
Plus de sujets relatifs à : [C] != entre < char tmp[10]; > et < char *tmp = (void *)malloc(10); >?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)