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

  FORUM HardWare.fr
  Programmation

  [c => C++] malloc => new

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c => C++] malloc => new

n°27077
darkoli
Le Petit Dinosaure Bleu
Posté le 24-04-2001 à 16:47:48  profilanswer
 

voila je programme en c/c++ mais j'utilise toujours malloc depuis des milliards d'années. Et je ne suis pas sur de tres bien utiliser new (je ne l'utilise pas en fait) .
 

Code :
  1. Ttoto** toto=(Ttoto**)NULL;
  2. toto=(Ttoto**)malloc(sizeof(Ttoto*)*10);
  3. for (int i=0;i<10;i++) {
  4.   toto[i]=(Ttoto*)malloc(sizeof(Ttoto)*10);
  5.   }
  6. ...
  7. for (int i=0;i<10;i++) free(toto[i]);
  8. free(toto)


 
qu'est ce que ca donne en utilisant new et dispose à la place de malloc et free ?
 :(

mood
Publicité
Posté le 24-04-2001 à 16:47:48  profilanswer
 

n°27095
tsr
Posté le 24-04-2001 à 16:59:53  profilanswer
 

Ttoto** toto=(Ttoto**)NULL;  
toto=new (Ttoto**)[sizeof(Ttoto*)*10];  
for (int i=0;i<10;i++) {  
  toto[i]=new (Ttoto*)[sizeof(Ttoto)*10];  
  }  
 
...  
 
for (int i=0;i<10;i++) delete[](toto[i]);  
delete[](toto)

n°27099
LeGreg
Posté le 24-04-2001 à 17:04:32  profilanswer
 

malloc se contente de reserver un espace memoire correspondant a ce que tu as trouve. C'est un fonction de librairie standard du C.(include malloc.h). son pendant est free qui libere simplement la memoire.
new va, en plus de reserver l'espace memoire pour l'objet ou la collection d'objets, appeler le constructeur de l'objet. C'est une instruction specifique du C++ et pas un appel de librairie.(pas de include a faire). Son pendant est delete qui appelle le destructeur de l'objet et libere la memoire.
 
usage:
MyClass *ptr = new MyClass(p0, .., pn);
// utilisation de ptr
delete ptr;
 
MyClass *array = new MyClass[taille];
// utilisation de l'array
delete[] array;
 
Ne pas oublier le []
et comme pour free, on ne libere pas les objets
du tableau individuellement mais tout en bloc.
 
A+
Legreg

n°27103
BENB
100% Lux.
Posté le 24-04-2001 à 17:06:49  profilanswer
 

tsr > non
ca donne  
Ttoto** toto = new (Ttoto*)[10];
for(int i=0; i<10;i++)
 toto[i] = new Ttoto[10];
 
 
...
 
...
 
for(int i=0;i<10;i++)
 delete [](toto[i]);
delete[] toto;
 
les [] sont pour l'allocation de tableaux...

n°27122
darkoli
Le Petit Dinosaure Bleu
Posté le 24-04-2001 à 17:29:53  profilanswer
 

ok ...
 
ben merci bien les p'tit gars


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

  [c => C++] malloc => new

 

Sujets relatifs
Plus de sujets relatifs à : [c => C++] malloc => new


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