Müssen Sie in C++ mallocieren?
Müssen Sie in C++ mallocieren?

Video: Müssen Sie in C++ mallocieren?

Video: Müssen Sie in C++ mallocieren?
Video: C++ Tutorial für Anfänger: Lerne C++ in 60 Minuten (deutsch) 2024, Kann
Anonim

Du verwenden malloc Wenn du brauchst Objekte zuordnen, die muss über die Laufzeit der Ausführung des aktuellen Blocks hinaus existieren (wobei ein Copy-on-Return möchten auch teuer sein) oder wenn Sie müssen Speicher zuweisen größer als die Größe dieses Stapels (dh: ein lokales Stapel-Array von 3 MB ist eine schlechte Idee).

Müssen Sie in C++ auch mallocieren?

Der Unterschied ist einfach: malloc weist Speicher zu, während new Speicher zuweist UND den Konstruktor des Objekts aufruft Sie 'sind Speicher für zuweisen. Also, es sei denn Sie sind auf C beschränkt, Du solltest benutze niemals malloc , besonders im Umgang mit C++ Objekte.

Man kann sich auch fragen, was ist der Sinn von malloc? In C ist die Bibliotheksfunktion malloc wird verwendet, um einen Speicherblock auf dem Heap zuzuordnen. Das Programm greift auf diesen Speicherblock über einen Zeiger zu, der malloc kehrt zurück. Wenn der Speicher nicht mehr benötigt wird, wird der Zeiger an free übergeben, wodurch der Speicher freigegeben wird, damit er für andere Zwecke verwendet werden kann.

Gibt es auf diese Weise malloc in C++?

Die malloc () Funktion in C++ weist zu ein Block des nicht initialisierten Speichers und kehrt zurück ein void zeiger auf das erstes Byte von das zugewiesener Speicherblock, wenn das Zuordnung gelingt. Wenn das Größe ist null, das zurückgegebener Wert hängt ab von das Implementierung von das Bücherei. Es kann sein oder nicht ein Null Zeiger.

Wie wird eine Struktur mallociert?

Für das was du willst brauchst du zwei malloc () S. strukturieren Vektor *y = malloc (Größe von *y); /* Beachten Sie den Zeiger */ y->x = calloc(10, sizeof *y->x); In der ersten Zeile weisen Sie einem Vector-Objekt Speicher zu. malloc () gibt einen Zeiger auf den zugewiesenen Speicher zurück, daher muss y ein Vektorzeiger sein.