linux-l: 2 Fragen: malloc und Uhr

tho at thomsen.isdn.cs.tu-berlin.de tho at thomsen.isdn.cs.tu-berlin.de
Mi Apr 28 22:18:11 CEST 1999


In message <Pine.OSF.3.96.990428180820.7889A-100000 at harry.RZ-Berlin.MPG.DE>, Ma
rtin Maetzig writes:
> 
> 
> On Wed, 28 Apr 1999, Christof Lutteroth wrote:
> 
> > Hallo !
> > Zwei Sachen beschaeftigen mich:
> > 
> > Ersteinmal, wie kann ich die groesse eines mit malloc() allokierten 
> > Speicherblocks herausbekommen ?
> 
> hmm, 
> 
> wie waere:
> 
> pVar = (int *) malloc( iSize * sizeof(int));
> printf("%d\n", pVar);
> 
> ???
> 
> siehe cast-operator ....
Ja ???

 Wie soll denn das funktionieren? malloc gibt die Adresse des alloziierten
Speicherbereichs zurueck, der willkuerliche Daten enthaelt. 
 Obiges Programmfragment gibt diese Adresse aus, vorrausgesetzt 
sizeof(int *) == sizeof(int); besser waere hier '%p'.
 Der cast ('C'), bzw. der cast-'operator' (C++) aendert daran nichts - es sei
denn Du versteckst nicht-triviale und nicht offensichtliche Funktionalitaet 
in dem cast-operator, was Du nicht tun solltest.

Guenther



Mehr Informationen über die Mailingliste linux-l