The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > UNIX for Advanced & Expert Gebruikers
.
google unix.com



UNIX for Advanced & Expert Gebruikers Expert-to-Expert. Hier geavanceerde UNIX-, UNIX-commando's, Linux, Operating Systems, System Administration, programmering, Shell, Shell scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
vragen in memset arunkumar_mca UNIX voor Dummies Questions & Answers 7 08-09-2007 01:08 PM
over memset functie ranj @ CHN Hoog Niveau Programmering 3 01-31-2006 08:59

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 07-16-2008
Salvi salvi is offline
Geregistreerde gebruiker
  
 

Join Date: juli 2008
Posten: 7
memset vs calloc

Dear Friends,
Kan iemand mij vertellen het verschil tussen memset en calloc functie in C.

Groeten,
Selvi
  #2 (permalink)  
Old 07-16-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderator
  
 

Join Date: Sep 2007
Locatie: Duitsland
Berichten: 2.285
Uh oh ... beste worden verplaatst / gepost in hoog niveau programmering subforum naast de deur Ik denk dat (als er geen antwoord komt).
  #3 (permalink)  
Old 07-16-2008
Shamrock shamrock is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Datum: oktober 2007
Locatie: Verenigde Staten
Posts: 750
memset () initialiseert byte strings aan een gebruiker geleverde waarde die is beperkt tot de unsigned char bereik. Het is niet toewijzen geen geheugen.

calloc () wijst geheugen van elk type (char, int, struct) en initialiseert dat de opslag van nullen.

Beide initialiseren een bepaalde opslag ruimte [memset () wordt de meer exclusieve van de twee functies], maar slechts een toegewezen geheugen voor de opslag van een bepaald object type.
  #4 (permalink)  
Old 07-16-2008
osulinux osulinux is offline
Geregistreerde gebruiker
  
 

Join Date: juni 2008
Posts: 31
calloc () wordt meestal gebruikt om arrays te maken. Het is een soort van soortgelijke malloc () is dat in het toegewezen geheugen, maar calloc () als Shamrock wijst op het toegewezen geheugen op 0 sets.

Het effect van calloc () is hetzelfde als het doen malloc (), gevolgd door memset ().
  #5 (permalink)  
Old 07-17-2008
Salvi salvi is offline
Geregistreerde gebruiker
  
 

Join Date: juli 2008
Posten: 7
Dear Friends,
Dank u voor uw antwoord.
Eigenlijk toen ik het lezen van de code van de traceroute zag ik de volgende verklaring.

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 is van het datatype struct ip *.
packlen is de grootte van het pakket (dat wil zeggen, 40 bytes).


Mijn twijfel is de reden waarom ze hier niet met behulp van de calloc functie.

Groeten,
Selvi.
  #6 (permalink)  
Old 07-17-2008
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Locatie: NM
Berichten: 5.763
Dat is de oudere C-code (omdat moderne malloc niet en moet worden gegoten).

I'm guessing:
Sommige oudere calloc implementaties problemen had eigenlijk op nul stellen van de toegewezen geheugen. Dus misschien de codeur wist dit was een probleem.

Plus, heeft calloc oproep een equivalent van memset toch - dus het is aan u om welke u wilt gebruiken: malloc + memset of calloc kiezen. Ik persoonlijk zelden gebruik calloc.
  #7 (permalink)  
Old 07-17-2008
osulinux osulinux is offline
Geregistreerde gebruiker
  
 

Join Date: juni 2008
Posts: 31
De reden is dat calloc () impliceert array toegang. Ze zijn niet behandelen van het geheugen gebied als een array hier dus gebruik van malloc (). calloc () wordt zelden gebruikt lijkt het mij, en in dit geval zou geen zin om te gebruiken. Denk er eens over, wat zou u een reeks van in dit geval, wat voor soort?
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 06:01.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0