Page 170 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 170
double *P;
P = (double*) malloc(8); /* atau dapat juga ditulis dengan
P = (double*) malloc(sizeof(double)); */
Walaupun cara di atas diizinkan oleh kompiler serta program juga dapat berjalan
dengan benar, namun kebanyakan dari programmer C pada umumnya lebih memilih
untuk menggunakan operator sizeof untuk mendapatkan ukuran dari tipe data tertentu.
7.10.2. Menggunakan Fungsi calloc()
Fungsi ini mempunyai bentuk prototipe sebagai berikut.
void *calloc(size_t n, size_t size);
Fungsi calloc() akan mengembalikan pointer ke sebuah array yang terdiri dari n
elemen data dengan size (ukuran) yang ditentukan. Apabila tidak terpenuhi, maka
fungsi ini akan mengembalikan nilai NULL. Berbeda dengan fungsi malloc() yang
tidak melakukan inisialiasi, pada fungsi calloc() ini ruang yang dialokasikan akan
diinisialisasi dengan nilai nol. Untuk dapat lebih memahaminya, coba Anda perhataikan
contoh penggunaan fungsi calloc() berikut.
int *P;
P = (int*) calloc(20, sizeof(int));
Sintak di atas berarti mengalokasikan 80 byte ruang memori (yang berasal dari 20x4).
Dengan kata lain, terdapat 20 elemen array yang masing-masing elemennya berukuran 4
byte. Adapun nilai 4 di sini merupakan ukuran dari tipe data int.
7.10.3. Menggunakan Fungsi realloc()
Fungsi terakhir yang dapat digunakan untuk mengalokasikan memori di dalam bahasa C
adalah fungsi realloc().Berikut ini bentuk prototipe dari fungsi tersebut.
void *realloc(void *p, size_t size);
Perlu ditekankan bahwa fungsi realloc() ini sebenarnya digunakan untuk melakukan
perubahan terhadap alokasi memori yang sebelumnya telah dilakukan dengan
menggunakan fungsi malloc() atau calloc(). Dengan kata lain, fungsi ini hanya
digunakan untuk alokasi ulang apabila ternyata ruang yang dialokasikan oleh fungsi
malloc() atau calloc() kurang besar. Fungsi realloc() ini akan mengembalikan
pointer ke ruang baru yang ditambahkan, atau mengembalikan nilai NULL apabila