Perbedaan Antara calloc dan malloc

Perbedaan Kunci - calloc vs malloc

Dalam pemrograman, perlu untuk menyimpan data. Data disimpan dalam memori. Lokasi memori ini dikenal sebagai variabel. Setiap variabel memiliki tipe tertentu. Mereka dapat berupa bilangan bulat, mengapung, menggandakan, karakter dll. Ada juga struktur data yang dapat menyimpan kumpulan elemen berurutan ukuran tetap dari jenis yang sama. Ini adalah sebuah array. Programmer harus mendeklarasikan ukuran array. Jika programmer mendeklarasikan array bilangan bulat untuk lima elemen, tidak mungkin untuk menetapkan nilai ke indeks lebih tinggi dari ukuran yang dinyatakan. Alokasi memori sudah diperbaiki, dan tidak dapat diubah pada saat dijalankan. Metode alokasi memori lainnya adalah alokasi memori dinamis. Alokasi memori dinamis membantu mengalokasikan lebih banyak memori bila diperlukan dan melepaskan bila perlu. File header memiliki empat fungsi untuk alokasi memori dinamis. calloc dan malloc adalah dua fungsi tersebut. Itu perbedaan utama antara calloc dan malloc adalah itu calloc mengalokasikan memori dan juga menginisialisasi blok memori yang dialokasikan ke nol sedangkan malloc mengalokasikan memori tetapi tidak menginisialisasi bahwa memori yang dialokasikan menjadi nol. Mengakses konten di calloc akan memberikan nol, tetapi malloc akan memberikan nilai sampah.

ISI

1. Ikhtisar dan Perbedaan Utama
2. Apa itu calloc
3. Apa itu malloc
4. Kesamaan Antara calloc dan malloc
5. Perbandingan Berdampingan - calloc vs malloc dalam Bentuk Tabular
6. Ringkasan

Apa itu calloc?

Alokasi memori adalah proses menetapkan memori untuk program yang mengeksekusi. Terkadang perlu untuk mengubah ukuran memori. Oleh karena itu, alokasi memori dinamis digunakan. Ini dilakukan dengan menggunakan pointer. Pointer adalah variabel referensi yang menyimpan alamat variabel lain.

Gambar 01: calloc dan malloc

calloc singkatan dari "alokasi yang berdekatan". Ini mengalokasikan beberapa blok memori dengan ukuran yang sama. Sintaks untuk calloc adalah sebagai berikut. Dibutuhkan dua argumen. Mereka adalah jumlah blok dan ukuran setiap blok. Fungsi calloc mengembalikan pointer kosong, sehingga operator transmisi digunakan untuk mengembalikan tipe pointer sesuai dengan tipe data yang diperlukan.

        membatalkan * calloc (size_t num, size_t size);

Lihat program C sederhana di bawah ini.

#termasuk

#termasuk

int main ()

int ptr * = (int *) calloc (20, sizeof (int));

if (ptr == NULL)

printf ("Memori tidak dialokasikan");

lain

printf ("Memori dialokasikan");

return 0;

Menurut program di atas, blok memori yang berdekatan yang dapat menampung 20 elemen dialokasikan. Masing-masing akan memiliki ukuran bilangan bulat. Sizeof (int) digunakan karena tipe integer bervariasi dari kompiler ke kompiler.

Jika alokasi memori berhasil, itu akan mengembalikan alamat dasar dari blok memori. Ini berarti pointer ptr sekarang menunjuk ke alamat dasar dari blok memori itu. Semua wilayah yang dialokasikan diinisialisasi ke nol. Ini akan mencetak pesan yang dialokasikan memori. Jika alokasi memori tidak berhasil, itu akan mengembalikan pointer nol. Oleh karena itu, ia akan mencetak Memori tidak dialokasikan pesan.

Apa itu malloc?

Fungsi malloc digunakan untuk mengalokasikan jumlah byte yang diperlukan dalam memori. Sintaks untuk malloc adalah sebagai berikut. Ukurannya mewakili memori yang diperlukan dalam byte.

        membatalkan * malloc (size_t_size);

Fungsi malloc mengembalikan pointer kosong, sehingga operator transmisi digunakan untuk mengembalikan tipe pointer sesuai dengan tipe data yang diperlukan.

Lihat program C sederhana di bawah ini dengan fungsi malloc.

#termasuk

#termasuk

int main ()

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

if (ptr == NULL)

printf ("Memori tidak dialokasikan");

lain

printf ("Memori dialokasikan");

return 0;

Menurut program di atas, blok memori akan dialokasikan. Pointer menunjuk ke alamat awal dari memori yang dialokasikan. Pointer yang dikembalikan dikonversi ke tipe integer. Jika memori dialokasikan itu akan mencetak memori dialokasikan pesan. Jika memori tidak dialokasikan, pointer nol akan kembali. Karena itu, memori yang tidak dialokasikan pesan akan dicetak.

Apa Persamaan Antara calloc dan malloc?

  • Kedua fungsi ini dideklarasikan dalam file header. Ini adalah file header perpustakaan standar.
  • Kedua fungsi digunakan untuk alokasi memori dinamis.
  • Pointer yang dikembalikan oleh calloc dan malloc harus dimasukkan ke dalam tipe spesifik.
  • Dalam alokasi memori yang berhasil, kedua fungsi akan mengembalikan pointer dengan alamat dasar dari blok memori.
  • Jika alokasi memori tidak berhasil, pointer nol akan dikembalikan.

Apa Perbedaan Antara calloc dan malloc?

calloc vs malloc

calloc adalah fungsi untuk alokasi memori dinamis dalam file header stdlib.h bahasa C yang mengalokasikan sejumlah byte dan menginisialisasi mereka ke nol. malloc adalah fungsi untuk alokasi memori dinamis dalam file header stdlib.h bahasa C yang mengalokasikan sejumlah byte tertentu.
 Berarti
calloc adalah singkatan dari alokasi yang berdekatan. malloc adalah singkatan dari alokasi memori.
Sintaksis
calloc mengikuti sintaksis yang mirip dengan void * calloc (size_t_num, size_t size); malloc mengikuti sintaksis yang mirip dengan void * malloc (size_t_size);.
 Jumlah Argumen
Calloc mengambil dua argumen. Mereka adalah sejumlah blok dan ukuran setiap blok. malloc mengambil satu argumen. Ini adalah sejumlah byte.
Kecepatan
calloc sedikit lebih lama dari malloc. Itu karena langkah ekstra menginisialisasi memori yang dialokasikan oleh nol. malloc lebih cepat dari calloc.

Ringkasan - calloc vs malloc

Dalam alokasi memori statis seperti kita menggunakan array, memori diperbaiki. Jika beberapa elemen disimpan, maka sisa memori terbuang sia-sia. Mungkin juga menyebabkan kesalahan ketika memori yang dialokasikan lebih kecil dari memori yang dibutuhkan. Oleh karena itu, alokasi memori dinamis digunakan. Dalam bahasa C, calloc dan malloc memberikan alokasi memori dinamis. Perbedaan antara calloc dan malloc adalah bahwa calloc mengalokasikan memori dan juga menginisialisasi blok memori yang dialokasikan ke nol sementara malloc mengalokasikan memori tetapi tidak menginisialisasi blok memori ke nol. Malloc mengambil dua argumen sementara calloc mengambil dua argumen.

Unduh PDF calloc vs malloc

Anda dapat mengunduh versi PDF dari artikel ini dan menggunakannya untuk tujuan offline sesuai catatan kutipan. Silakan unduh versi PDF di sini: Perbedaan Antara calloc dan malloc

Referensi:

1.Kumar, Krishan. "Perbedaan Antara Malloc dan Calloc di C." Cs-Fundamentals.com, Cs-Fundamentals.com. Tersedia disini  
2. "C alokasi memori dinamis." Wikipedia, Wikimedia Foundation, 13 Januari 2018. Tersedia di sini 
3. "Calloc () versus malloc ()." GeeksforGeeks, 14 Juni 2017. Tersedia di sini