Mit "dynamischer Speicherzuordnung" gekennzeichnete Fragen

Dynamische Speicherzuordnung, normalerweise im Kontext von Sprachen ohne Speicherbereinigung oder obligatorische oder automatische Referenzzählung, bezieht sich auf einen Prozess oder fordert ein Betriebssystem für einen Speicherblock mit variabler Größe an.
25
antwortet

Was und wo sind der Stapel und der Haufen?

Bücher in Programmiersprachen erklären, dass Werttypen auf dem Stapel erstellt werden und Referenztypen auf dem Heap erstellt werden, ohne zu erklären, was diese beiden Dinge sind. Ich habe keine klare Erklärung dafür gelesen. Ich verstehe was ein Stapel ist. Aber wo und was sie sind (physisch in ...
eingestellt auf 17 sep. 08 um 7:18
9
antwortet

Der Unterschied zwischen statischer Speicherzuordnung und dynamischer Speicherzuordnung

Ich würde gerne wissen, was ist der Unterschied zwischen statischer Speicherzuweisung und dynamischer Speicherzuordnung? Könnten Sie das mit einem Beispiel erklären?
set 05 Dez '11 um 15:30 Uhr
4
antwortet

Sind new und delete in C ++ 14 noch nützlich?

In Anbetracht der Anwesenheit von make_unique und make_shared sowie des automatischen Löschens von unique_ptr und shared_ptr durch Destruktoren: Welche Situationen gibt es (außer der Unterstützung von veraltetem Code) für die Verwendung von new und delete in C ++ 14?
am 10. Juni 15 um 20:12 Uhr festgelegt
11
antwortet

Effektive verknüpfte Liste in C ++?

Dieses Dokument besagt, dass std :: list nicht effizient ist: std :: list ist eine sehr ineffiziente Klasse, die selten nützlich ist. Es führt eine Heap-Zuweisung für jedes eingefügte Element durch, daher hat es einen extrem hohen konstanten Koeffizienten ...
Set 16. August '17 um 18:44
5
antwortet

Wird der Destruktor aufgerufen, wenn ein Objekt den Gültigkeitsbereich verlässt?

Zum Beispiel: int main () {Foo * leedle = new Foo (); 0 zurückgeben; } class Foo {private: somePointer * bar; public: Foo (); ~ Foo (); }; Foo :: ~ Foo () {Leiste löschen; } Ob der Destruktor implizit vom Compiler aufgerufen wird oder wird ...
wird am 17. Juli 13 um 17:45 eingestellt
4
antwortet

Warum stürzt mein Programm ab, wenn ich einen Zeiger inkrementiere und ihn lösche?

Ich löste einige Programmierübungen, als mir klar wurde, dass ich ein großes Missverständnis in Bezug auf Zeiger hatte. Bitte kann jemand erklären, warum dieser Code in C ++ abstürzt. #include <iostream> int main () {...
am 16. Dezember eingestellt 16 um 15:08 Uhr
5
antwortet

Wann und warum Malloc verwenden?

Nun, ich kann nicht herausfinden, wann und warum Speicher mit Malloc zugewiesen wird. Hier ist mein Code: #include <stdlib.h> int main (int argc, const char * argv []) {typedef struct {char * name; char * sex; int alter; } Student; // Jetzt kann ich ...
am 10. Januar eingestellt '12 um 11:40
2
antwortet

Neuer Operator zum Zuordnen von Speicher im Heap

Ich habe die Signatur des neuen Betreibers gesehen. Das heißt: void * operator new (std :: size_t size) throw (std :: bad_alloc); Aber wenn wir diese Aussage verwenden, verwenden wir niemals einen Abguss. das heißt, int * arr = new int; Also, wie C ++ den Zeiger transformiert ...
Set 09 Feb 11 um 09:02
6
antwortet

Pimpl-Idiom ohne dynamische Speicherzuordnung

Wir wollen die Pimpl-Idiom für einige Teile unseres Projekts verwenden. Diese Teile des Projekts sind auch Bereiche, in denen die dynamische Speicherzuweisung verboten ist und diese Lösung nicht unter unserer Kontrolle steht. Also frage ich, ob es eine saubere und ...
Set 07 Feb '11 um 16:38
4
antwortet

Warum kann die Laufzeitumgebung nicht "delete" oder "delete" [] anstelle des Programmierers anwenden?

Ich habe gelesen, dass der delete [] -Operator benötigt wird, weil die Laufzeit nicht Informationen darüber speichert, ob ein ausgewählter Block ein Array von Objekten ist, die Destruktoraufrufe erfordern oder nicht, sondern tatsächlich Informationen darüber, wo sich der Speicher befindet.
set 06 Dez 11 um 21:46
3
antwortet

Warum _mm_malloc verwenden? (im Gegensatz zu _aligned_malloc, alligned_alloc oder posix_memalign)

Es gibt mehrere Optionen, um einen integrierten Speicherblock zu erhalten, aber sie sind sich sehr ähnlich. Das Problem hängt im Wesentlichen davon ab, in welcher Sprache der Standard und die Plattform, auf die Sie abzielen, ausschlaggebend sind. C11 void * align_alloc (Größe_t-Ausrichtung, Größe_t-Größe) PO ...
16. September eingestellt '15 um 18:30 Uhr
4
antwortet

Wie Sie Speicher dynamisch mithilfe von Builds und Systemaufrufen unter Linux zuweisen

Ich suche nach guten Codebeispielen für die Zuordnung von dynamischem Speicher mithilfe von Assembler unter Linux und der Verwendung von Systemaufrufen anstelle von Malloc und Freunden. Was sind einige der einfachsten, aber effektivsten Möglichkeiten, dies zu tun? Auf dem Computer ...
am 6. Mai 10 um 17:54 Uhr festgelegt
5
antwortet

Mischen des Operators neu [] und Platzieren eines neuen mit der üblichen Löschung []

Nur aus Neugier, ist es legal? X * p = static_cast <X *> (Operator new [] (3 * sizeof (X))); neues (p + 0) X (); neu (p + 1) x (); neu (p + 2) x (); lösche [] p; // Darf ich delete [] hier verwenden? Oder ist es undefiniertes Verhalten? Ähnlich: ...
am 27. Juni 11 um 19:02 Uhr festgelegt
4
antwortet

Dynamische Speicherzuordnung für Zeigerarrays

Ich versuche, ein Programm zu schreiben, das eine Folge von Zeilen aus einer Textdatei einliest und diese in einem String-Array speichert, wobei für jedes Element dynamisch Speicher zugewiesen wird. Mein Plan war es, jede Zeile mit Hilfe eines Dekrets in einem Array zu speichern ...
Setze den 28. September ein '13 um 18:40
3
antwortet

Verstehen Sie das Verhalten des neuen Handlers

Ich habe Scott Meyers "Effective C ++ 55" gelesen und stelle die Frage aus Klausel 49: Wenn ein Operator new eine Speicheranforderung nicht abschließen kann, ruft er einen neuen Handler auf, bis er genügend Speicher findet. Eine gut konzipierte Newhandler-Funktion sollte eine ...
Set 16. Februar '15 um 15:33