wat is verschil tussen malloc & Nieuw, gratis & DELE

S

sacrpio

Guest
hallo,
Vertel me wat zijn de verschillen tussen malloc & nieuw, verwijderen & vrije

bye ..

 
Malloc => Gebruik een bestaande variabele en kent een verschillende grootte geheugen toewijzing voor.
Nieuw => Creëer een compleet nieuw geheugen toewijzing voor dat varible.
Delete => Verwijder het huidige geheugen toewijzing en variabele index.(Dit vernietigt de variabele compleet. Kan niet gebruiken steeds weer.)
Gratis => Vrij geheugen toegewezen aan de variabele, maar laat de variabele index.

Malloc en Free samenwerken en Nieuw en Verwijderen werkt samen.

: sm35:

 
Ik beloof dit artikel is nuttig voor u:
Aan de nieuwe C ; Om malloc C; om ze mixen is zonde

 
Dat is niet juist!
does memory allocation and returns a pointer to the allocated memory.

malloc
doet geheugen toewijzing en retourneert een pointer naar het toegewezen geheugen.searches the available free memory pool for a place which can hold the requested number of bytes, allocates it (remove it from the free part of the memory and keep some kind of index).

malloc
zoekt de beschikbare vrije geheugen pool voor een plaats die kan het gevraagde aantal bytes, trekt het (verwijderen uit het vrije deel van het geheugen en houdt een soort index).(dus Frikki
de uitleg is fout!)free
frees the memory at the specified adres.

Het is mogelijk dat de aanwijzer nog wijst op het geheugen en dat de juiste gegevens is nog steeds in die plaats!

Code:

int * intArray;

/ / Toewijzen 10 int variabelen in een continu geheugen sectie

intArray = malloc (10 * sizeof (int));/ / Vrij geheugen sectie weer (zodat u geen geheugenlekken)

gratis (intArray);
 
Als u programma in C nieuwe en verwijderen.Als C vervolgens malloc en vrij (ten minste)

 
Als je schrijven en compileren van een klein programma in C met behulp van de Microsoft of Borland compilers, die verklaart een eenvoudige array (int * Ik =
new int [20]

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

en vervolgens decompileren en kijken naar de aanbiedingen, met lichte verschillen tussen de samenstellers, vindt u dat er nieuwe gesprekken malloc om het geheugen van de afvalberg en verwijderen oproepen vrij om het geheugen.(en waarom niet, ze zijn tijd getest, vaste routines?)
Welke nieuwe en verwijderen doen, is GARANTIE, om terug te keren of te vernietigen, een aanwijzer van het juiste type.Als C probeert het een sterk getypte taal.
In C, moet u typecast, met sizeof, de teruggekeerde pointer type bij gebruik van malloc, als malloc retourneert een void pointer.

 
is equivalent to malloc
with some extra's (initialization of members, overloading, ...)

Ja, dat betekent nieuwe
gelijkwaardig is aan malloc
met wat extra's (initialisatie van de leden, overbelasting, ...)

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />Het boek "Object Oriented Programming met de ANSI C" is interessant om te lezen hier.(http://www.planetpdf.com/codecuts/pdfs/ooc.pdf)

Maar het betekent niet dat C wordt omgezet in dat C-code voordat het wordt opgesteld

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

.

 

Welcome to EDABoard.com

Sponsor

Back
Top