Lompat ke konten Lompat ke sidebar Lompat ke footer

Penggunaan realloc() Bahasa C dan Penjelasannya

Fungsi realloc() Bahasa C merupakan fungsi yang digunakan untuk mengalokasikan ukuran memori secara dinamis pada komputer.


Sebelum memahami lebih dalam materi tentang Penggunaan realloc() Bahasa C dan Penjelasannya, terlebih dahulu pelajari materi tentang: Fungsi free() Bahasa C untuk Mengetahui Ukuran Memori yang Dealokasi, Perbedaan malloc() dan calloc() Bahasa C, dan Dealokasi Memori Bahasa C Tanpa Menggunakan free().

Penulisan fungsi realloc() sesuai dengan standar C99: void *realloc(void *ptr, size_t size);

Fungsi realloc() melakukan dealokasi objek lama yang ditunjuk oleh ptr akan mengembalikan sebuah nilai pointer ke objek baru yang memiliki ukuran spesifik sesuai dengan nilai ukuran yang telah ditentukan. Konten dari objek baru tersebut adalah sama, sehingga objek lama sebelumnya akan menuju ke dealokasi memori, hingga yang lebih kecil dari ukuran memori baru dan lama. Setiap byte yang berada dalam objek baru, di luar ukuran objek lama, maka akan memiliki nilai tak tentu.

Hal yang perlu diperhatikan dari fungsi realloc() adalah fungsi tersebut hanya boleh digunakan untuk alokasi memori dinamis. Jika nilai memori tidak dialokasikan secara dinamis, maka akan memunculkan nilai tak terdefinisi. Contoh, program 1 mendemonstrasikan cara yang salah dalam menggunakan fungsi realloc() dan program 2 mendemonstrasikan cara yang benar dalam menggunakan fungsi realloc().

Contoh: Program 1.

#include <stdio.h>

#include <stdlib.h>


int main()

{

int arr[2], i;

int *ptr = arr;

int *ptr_new;


arr[0] = 10;

arr[1] = 20;


// Cara yang salah dalam

// penggunaan new_ptr: yang

// menghasilkan behavior tak

// terdefinisi.

ptr_new = (int *)realloc(ptr, sizeof(int)*3);


*(ptr_new + 2) = 30;


for(i = 0; i < 3; i++)

printf("%d ", *(ptr_new + i));


getchar();


return 0;

}

Output:
Undefined Behavior

Baca Juga:

Contoh: Program 2.

#include <stdio.h>

#include <stdlib.h>


int main()

{

int *ptr = (int *)malloc(sizeof(int)*2);

int i;

int *ptr_new;


*ptr = 10;


*(ptr + 1) = 20;


ptr_new = (int *)realloc(ptr, sizeof(int)*3);


*(ptr_new + 2) = 30;


for(i = 0; i < 3; i++)

printf("%d ", *(ptr_new + i));


getchar();


return 0;

}

Output:
10 20 30

Artikel ini didedikasikan kepada: Hesti Ayu DiyahIchsan Rizqi DewantoIin Risma ImandaIndah Nurhidayah, dan Indy Rahmawati.

5 komentar untuk "Penggunaan realloc() Bahasa C dan Penjelasannya"

  1. Apa yang dimaksud dengan fungsi realloc pada bahasa C?

    BalasHapus
    Balasan
    1. Fungsi realloc adalah salah satu fungsi bawaan pada bahasa C yang digunakan untuk mengalokasikan ukuran memori secara dinamis.

      Hapus
    2. Fungsi realloc pada bahasa pemrograman C digunakan untuk mengubah ukuran blok memori yang menunjuk ke pointer yang sebelumnya dialokasikan ke variabel oleh fungsi malloc dan calloc.

      Hapus
  2. Apa singkatan dari realloc pada bahasa C?

    BalasHapus
    Balasan
    1. REALLOC adalah singkatan dari reallocation, atau alokasi ulang suatu ukuran memori pada komputer dengan menggunakan bahasa.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -