The UNIX and Linux Forums  
Hello and Welcome-tól az Egyesült Államokat, hogy az UNIX és Linux Forums? Köszönjük, hogy meglátogatta és csatlakozik Globális Közösség.

Go Back   A UNIX és Linux Forums > Top Fórumok > A UNIX a fejlett és szakértői Felhasználók
.
google unix.com



A UNIX a fejlett és szakértői Felhasználók Szakértő-to-szakértő. Tudjon fejlett UNIX, UNIX parancsokat, a Linux operációs rendszereket, Rendszeradminisztráció, programozás, a Shell, a Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
kérdéseket memset arunkumar_mca A UNIX a dummies Kérdések és válaszok 7 08-09-2007 12:08 PM
kb memset fuction ranj @ CHN Magas szintű Programozás 3 01-31-2006 08:59 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 07-16-2008
salvi salvi is offline
Regisztrált felhasználó
  
 

Join Date: Jul 2008
Hozzászólások: 7
memset vs calloc

Kedves Barátaink!
Tud valaki mondani a különbség memset és calloc funkcióval C-ben

Üdvözlettel,
Selvi
  #2 (permalink)  
Old 07-16-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderátor
  
 

Join Date: Sep 2007
Helyszín: Németország
Hozzászólások: 2272
Uh oh ... legjobb szállított / kiküldött Magas szintű programozási subforum szomszédban Azt hiszem, (ha nincs válasz érkezett.)
  #3 (permalink)  
Old 07-16-2008
Shamrock shamrock is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Oct 2007
Helyszín: USA
Posts: 750
memset () elindítja byte strings a felhasználótól származó adatot, amelyet kizárólag az unsigned char tartományban. Ez nem lehet lefoglalni több memóriát.

calloc () osztja memória bármilyen típusú (char, int, struct), és elindítja az, hogy a tárolás a nullák.

Mindkét inicializálni egy adott tároló terület [memset (), hogy minél több zárni a két funkció], de csak az egyik oszt memória tárolására egy adott objektum típusát.
  #4 (permalink)  
Old 07-16-2008
osulinux osulinux is offline
Regisztrált felhasználó
  
 

Join Date: Jun 2008
Hozzászólások: 31
calloc () általában létrehozásához használt tömböket. Ez a fajta, mint a malloc (), amennyiben osztja memóriájába, de calloc () függvényt a lóhere rámutat beállítja a lefoglalt memóriát 0-ra.

A hatás calloc () ugyanaz, mint csinál malloc (), majd memset ().
  #5 (permalink)  
Old 07-17-2008
salvi salvi is offline
Regisztrált felhasználó
  
 

Join Date: Jul 2008
Hozzászólások: 7
Kedves Barátaink!
Köszönöm a választ.
Valójában, amikor olvastam a kódot a traceroute láttam a következő nyilatkozatot.

outip \u003d (struct ip *) malloc ((unsigned) packlen);
if (outip \u003d\u003d NULL) (
Fprintf (stderr, "% s: malloc:% s \ n", prog, strerror (errno));
exit (1);
)
memset ((char *) outip, 0, packlen);

outip úgy adattípus struct ip *.
packlen a mérete a csomag (azaz 40 bájt).


Saját kétség ezért van, hogy nem használja a calloc funkciót.

Üdvözlettel,
Selvi.
  #6 (permalink)  
Old 07-17-2008
Jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Helyszín: NM
Hozzászólások: 5.748
Ez a régebbi, a C-kódot (mivel a modern malloc, és nem kell leadni.)

Im 'találgatás:
Néhány régebbi calloc implementáció volt probléma valójában nullázás ki a lefoglalt memóriát. Szóval lehet, hogy a kódoló tudta, hogy ez a probléma.

Plusz, calloc nem hívja azonos a memset egyébként - így rajtad múlik, hogy választhat ezek közül használni: malloc + memset vagy calloc. Én személy szerint ritkán használ calloc.
  #7 (permalink)  
Old 07-17-2008
osulinux osulinux is offline
Regisztrált felhasználó
  
 

Join Date: Jun 2008
Hozzászólások: 31
Ennek oka, hogy calloc () azt jelenti, array hozzáférést. Ezek nem kezeli a memória terület egy tömbben van tehát használ malloc (). calloc () ritkán használják úgy tűnik nekem, és ebben az esetben nem lenne semmi értelme használni. Gondolj bele, mit tesz egy sor ebben az esetben milyen típusú?
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 01:14 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0