platz allozierung

dangyn

Grünschnabel
Hallo Leute,

kann man in c++ auch malloc verwerden um speicher zu allozieren oder geht das nur mit new

Vielen Dank im voraus
 
C++ ist rückwärts kompatibel zu C.
Alles was in C geht, geht auch in C++.
Man kann das ++ durchaus wörtlich nehmen, C++ ist C plus etwas mehr.
Es ist allerdings nicht immer die saubere Art von Programmierung, wenn man Befehle aus verschiedenen Versionen mischt.
 
Hallo dangyn,

Thomasio hat ja schon das Wichtigste geschrieben,
aber weiterhin sollte man beachten, dass malloc und vor allen dann auch realloc 'sehr gerne' Speicherprobleme verursachen!!
Also ich würde unter C++ tunlichst auch nur new und delete verwenden!!

Gruß
Klaus
 
Noch ein paar Stichpunkte dazu:
  • Beim Anlegen von Objekten wird mit "new" der Konstruktur und mit "delete" der Destruktor aufgerufen.
  • "new" berechnet automatisch den Speicherbedarf für den anzulegendenden Datentyp, "malloc" tut das nicht.
  • Mit "new" erhält man einen Zeiger auf den angeforderten Datentyp. "malloc" liefert nur einen void-Zeiger, den man noch casten muss -> fehleranfällig.
  • "delete" kann überladen werden, "free" nicht.
  • "new/delete" sind auf die Sprache C++ bezogen und daher portabler als "malloc/free", die auf die Laufzeitbibliothek bezogen sind.
Gruß
MCoder
 
Zurück