hva er forskjellen mellom MALLOC & NY, FREE & DELE

S

sacrpio

Guest
Hallo,
Fortell meg hva er forskjellene mellom malloc & nye, slette
og gratis

bye ..

 
Malloc => Bruk en gjeldende variabelen og tildele en annen størrelse hukommelse tildeling for det.
Ny => Opprett en helt ny minne tildeling for at varible.
Slett => Slett gjeldende hukommelse tildeling og variabel indeksen.(Dette ødelegger variabel completly. Kan ikke bruke det igjen.)
Gratis => Ledig minne tilordnet variabelen men la variabel indeksen.

Malloc og Free arbeide sammen og Ny og Slett fungerer sammen.

: sm35:

 
Jeg lover denne artikkelen er nyttig for deg:
Til nye er C ; Slik malloc C; å blande dem er synd

 
Det er ikke riktig!
does memory allocation and returns a pointer to the allocated memory.

malloc
gjør hukommelse tildeling og returnerer en peker til allokert minne.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
søker tilgjengelig minne pool for et sted som kan holde den valgte antall bytes, tildeler det (fjerne den fra den frie delen av minnet og holder en slags indeks).(slik Frikki forklaring er galt!)
frees the memory at the specified adres.

gratis
frigjør minnet på den angitte adressen.Det er mulig at pekeren fremdeles peker til minnet, og at de riktige data er fortsatt i stedet!

Code:

int * intArray;

/ / Tildele 10 int variabler i en kontinuerlig minne delen

intArray = malloc (10 * sizeof (int));/ / Free minnet delen nytt (så du trenger ikke minne lekkasjer)

gratis (intArray);
 
Hvis du programmere i C nye og slette.Hvis C deretter malloc og gratis (minst)

 
Hvis du skrive og kompilere et lite program i C bruker Microsoft eller Borland kompilatorene som erklærer en enkel array (int * I = new int [20]

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

og deretter dekompilere den og se på leiligheter, med små variasjoner mellom kompilatorer, vil du finne at nye samtaler malloc å allokere minne fra heapen og slett ringe gratis å frigjøre minne.(og hvorfor ikke, det er tid testet, solide rutiner?)
Hvilke nye og slett gjøre, er garanti, for å returnere eller ødelegge, en peker til riktig type.Som C prøver å være en sterkt skrevet språk.
C, må du typecast med sizeof, de returnerte pekeren når du bruker malloc, som malloc returnerer void pekeren.

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

Ja, det betyr nye
tilsvarer malloc
med noen ekstra's (initialisering av medlemmer, overbelastning, ...)

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Kyss" border="0" />Boka "objektorientert programmering med ANSI C" er interessant å lese her.(http://www.planetpdf.com/codecuts/pdfs/ooc.pdf)

Men det betyr ikke C er oversatt til at C-koden før det er utarbeidet

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

.

 

Welcome to EDABoard.com

Sponsor

Back
Top