![]() |
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.
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| 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 |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
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. |
|
||||
|
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 (). |
|
||||
|
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. |
|
||||
|
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. |
|
||||
|
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ú?
|
![]() |
| Könyvjelzõk |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|