C
menyediakan unary operator sizeof untuk menentukan ukuran dalam
bit sebuah data array (atau tipe data lainnya) ketika program dijalankan.
Ketika di aplikasikan ke nama dari sebuah array seperti pada fig 7.16, operator
sizeof mengembalikan jumlah byte ke
dalam array sebagai integer. Variabel dengan tipe data float biasanya disimpan di memori 4 byte dan array di definisikan
mempunyai 20 elemen.
/*
Fig. 7.16: fig07_16.c
Applying
sizeof to an array name returns
the
number of bytes in the array. */
#include
<stdio.h>
size_t
getSize(float *ptr); /* prototype */
int
main( void )
{
float array[ 20 ]; /* create array */
printf( "The number of bytes in the
array is %d"
"\nThe number of bytes returned by
getSize is %d\n",
sizeof( array ), getSize( array ) );
return 0; /* indicates successful
termination */
}
/* end main */
/*
return size of ptr */
size_t
getSize(float *ptr)
{
return sizeof( ptr );
}
/* end function getSize */
Jumlah
dari elemen array juga bisa ditentukan dengan sizeof. Sebagai contoh:
double
real[ 22 ];
Variabel
dengan tipe data double secara normal
disimpan di memori 8 bit. Jadi array real
totalnya akan disimpan sebanyak 176 bit. Untuk menentukan jumlah dari
elemen array, bisa menggunakan ekspresi : sizeof( real ) / sizeof( real[ 0 ] )
Fungsi
getSize mengembalikan tipe size_t.
Tipe size_t didefinisika di C
sebagai tipe integral dari nilai pengembalian yang dilakukan oleh sizeof. Tipe size_t didefinisikan pada header <stddef.h> (yang di dalamnya
ada beberapa header, antara lain <stdio.h>).
0 komentar:
Posting Komentar