border=0

"77.95.5.4 - 77.95.5.4"

Vragen met tag 'dynamic-memory-allocation'

Dynamische geheugentoewijzing, meestal in de context van talen zonder garbage collection of verplichte of automatische referentietelling, verwijst naar een proces of vraagt ​​een besturingssysteem aan voor een blok geheugen met een variabele grootte.
25
antwoord

Wat en waar zijn de stapel en de hoop?

Boeken in programmeertalen leggen uit dat er waardetypen worden gemaakt op de stapel en dat er verwijzingscodes worden gemaakt op de hoop, zonder uit te leggen wat deze twee dingen zijn. Ik heb hier geen duidelijke verklaring voor gelezen. Ik begrijp wat een stapel is. Maar waar en wat ze zijn (fysiek in ...
ingesteld op 17 september '08 om 7:18
9
antwoord

Het verschil tussen toewijzing van statisch geheugen en toewijzing van dynamisch geheugen

Ik zou graag willen weten wat het verschil is tussen statische geheugentoewijzing en dynamische geheugentoewijzing? Zou je dit met enig voorbeeld kunnen uitleggen?
stel 05 december in '11 om 15.30 uur
4
antwoord

Zijn nieuwe en verwijderen nog steeds bruikbaar in C ++ 14?

Gezien de aanwezigheid van make_unique en make_shared, evenals de automatische verwijdering van unique_ptr en shared_ptr door destructors, wat zijn de situaties (naast het ondersteunen van verouderde code) voor het gebruiken van nieuwe en verwijderen in C ++ 14?
ingesteld op 10-15 juni om 20:12 uur
11
antwoord

Effectieve gekoppelde lijst in C ++?

Dit document zegt dat std :: list niet efficiënt is: std: list is een zeer inefficiënte klasse die zelden bruikbaar is. Het voert heapallocatie uit voor elk element dat erin is ingevoegd, daarom heeft het een extreem hoge constante coëfficiënt ...
Stel op 16 augustus in 17 om 18:44 uur
5
antwoord

Wordt een destructor genoemd wanneer een object buiten bereik raakt?

Bijvoorbeeld: int main () {Foo * leedle = new Foo (); retourneer 0; } class Foo {private: somePointer * bar; publiek: Foo (); ~ Foo (); }; Foo :: ~ Foo () {wisbalk; } Of de destructor impliciet wordt aangeroepen door de compiler of zal ...
ingesteld op 17 juli '13 om 17:45 uur
4
antwoord

Waarom crasht mijn programma wanneer ik een aanwijzer verhoog en het verwijder?

Ik heb een aantal programmeeroefeningen opgelost toen ik me realiseerde dat ik een groot misverstand had over wijzers. Alsjeblieft, iemand kan de reden uitleggen waarom deze code crasht in C ++. #include <iostream> int main () {...
ingesteld op 16 december 16 om 15:08 uur
5
antwoord

Wanneer en waarom malloc gebruiken?

Welnu, ik kan niet achterhalen wanneer en waarom geheugen toewijzen met malloc. Hier is mijn code: # include <stdlib.h> int main (int argc, const char * argv []) {typedef struct {char * name; char * sex; int leeftijd; } student; // Nu ik c ...
ingesteld op 10 januari '12 om 11:40 uur
3
antwoord

Bewaart Malloc meer ruimte door geheugen toe te wijzen?

Ik observeer het volgende gedrag in mijn testprogramma: ik doe malloc () voor 1 MB en vervolgens gratis () na slaap (10). Ik doe het vijf keer. Ik observeer het geheugenverbruik bovenaan tijdens het programma. Na gratis () -d verwacht ik het verbruik van Wirth ...
vastgesteld op 22 maart 19 om 10:45 uur
2
antwoord

nieuwe operator voor het toewijzen van geheugen in de heap

Ik heb de handtekening van de nieuwe operator bekeken. Dat is: ongeldig * operator nieuw (standaard: size_t size) throw (std :: bad_alloc); Maar als we deze verklaring gebruiken, gebruiken we nooit een cast. dat is int * arr = new int; Dus, hoe C ++ de aanwijzer transformeert ...
stel 09 febr '11 om 9:02
6
antwoord

Pimpl-idioom zonder gebruik van dynamische geheugentoewijzing

we willen het pimpl-idioom gebruiken voor sommige delen van ons project. Deze delen van het project zijn ook delen waar dynamische geheugentoewijzing verboden is en deze oplossing is niet onder onze controle. Dus ik vraag of er een schoon en ...
set 07 feb '11 om 16:38
4
antwoord

Waarom kan de runtime-omgeving niet worden verwijderd of verwijderd [] in plaats van het programmeerapparaat?

Ik lees dat de delete [] -operator nodig is, omdat de runtime geen informatie opslaat over of een geselecteerd blok een array van objecten is die destructor-calls vereist of niet, maar eigenlijk informatie opslaat over waar in het geheugen het is ...
set 06 dec '11 om 21:46
3
antwoord

Waarom _mm_malloc gebruiken? (in tegenstelling tot _aligned_malloc, alligned_alloc of posix_memalign)

Er zijn verschillende opties om een ​​ingebouwd geheugenblok te krijgen, maar ze lijken erg op elkaar, en het probleem komt in feite neer op de taal van de standaard en het platform dat u target. C11 void * aligned_alloc (size_t alignment, size_t size) PO ...
stel 16 september in 15 om 18.30 uur
4
antwoord

Dynamische geheugentoewijzing voor aanwijzerarrays

Ik probeer een programma te schrijven dat een reeks regels uit een tekstbestand leest en deze in een reeks tekenreeksen opslaat, waarbij dynamisch geheugen voor elk item wordt toegewezen. Mijn plan was om elke regel in een array op te slaan met behulp van een decreet ...
Set 28 september '13 om 18:40
5
antwoord

De operator nieuw [] mengen en een nieuwe plaatsen met de gebruikelijke verwijdering []

Gewoon uit nieuwsgierigheid, is het legaal? X * p = static_cast <X *> (operator nieuw [] (3 * sizeof (X))); nieuw (p + 0) X (); nieuw (p + 1) x (); nieuw (p + 2) x (); verwijder [] p; // Mag ik hier [] gebruiken? Of is het ongedefinieerd gedrag? Evenzo: ...
ingesteld op 27 juni '11 om 19:02 uur
3
antwoord

Begrijp het gedrag van de nieuwe handler

Ik las de "Effective C ++ 55" van Scott Meyers en stelde de vraag op basis van clausule 49: wanneer een nieuwe operator een geheugenverzoek niet kan voltooien, roept hij een nieuwe handler op totdat hij genoeg geheugen vindt. Een goed ontworpen nieuwe handler-functie moet een ...
16 feb 15 om 15:33 uur