Bahasa C
Bab ini menjelaskan manajemen memori dinamis dalam C. Bahasa pemrograman C menyediakan beberapa fungsi untuk alokasi dan manajemen memori. Fungsi-fungsi ini dapat ditemukan di
No.Sr. | Fungsi &Deskripsi |
---|---|
1 | void *calloc(int num, int size); Fungsi ini mengalokasikan array num elemen yang masing-masing ukurannya dalam byte akan menjadi ukuran . |
2 | tidak berlaku gratis(tidak berlaku *alamat); Fungsi ini melepaskan blok blok memori yang ditentukan oleh alamat. |
3 | void *malloc(size_t size); Fungsi ini mengalokasikan array num byte dan membiarkannya tidak diinisialisasi. |
4 | void *realloc(void *address, int newssize); Fungsi ini mengalokasikan ulang memori dengan memperluasnya hingga newsize . |
Saat memprogram, jika Anda mengetahui ukuran array, maka itu mudah dan Anda dapat mendefinisikannya sebagai array. Misalnya, untuk menyimpan nama seseorang, maksimal 100 karakter, jadi Anda dapat menentukan sesuatu sebagai berikut −
char name[100];
Tapi sekarang mari kita pertimbangkan situasi di mana Anda tidak tahu tentang panjang teks yang perlu Anda simpan, misalnya, Anda ingin menyimpan deskripsi rinci tentang suatu topik. Di sini kita perlu mendefinisikan pointer ke karakter tanpa menentukan berapa banyak memori yang dibutuhkan dan kemudian, berdasarkan kebutuhan, kita dapat mengalokasikan memori seperti yang ditunjukkan pada contoh di bawah ini −
Demo Langsung#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char name[100]; char *description; strcpy(name, "Zara Ali"); /* allocate memory dynamically */ description = malloc( 200 * sizeof(char) ); if( description == NULL ) { fprintf(stderr, "Error - unable to allocate required memory\n"); } else { strcpy( description, "Zara ali a DPS student in class 10th"); } printf("Name = %s\n", name ); printf("Description: %s\n", description ); }
Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut.
Name = Zara Ali Description: Zara ali a DPS student in class 10th
Program yang sama dapat ditulis menggunakan calloc(); hanya saja Anda perlu mengganti malloc dengan calloc sebagai berikut
calloc(200, sizeof(char));
Jadi Anda memiliki kontrol penuh dan Anda dapat melewatkan nilai ukuran apa pun saat mengalokasikan memori, tidak seperti array di mana setelah ukuran ditentukan, Anda tidak dapat mengubahnya.
Ketika program Anda keluar, sistem operasi secara otomatis melepaskan semua memori yang dialokasikan oleh program Anda tetapi sebagai praktik yang baik ketika Anda tidak membutuhkan memori lagi maka Anda harus melepaskan memori itu dengan memanggil fungsi free() .
Atau, Anda dapat menambah atau mengurangi ukuran blok memori yang dialokasikan dengan memanggil fungsi realloc() . Mari kita periksa program di atas sekali lagi dan gunakan fungsi realloc() dan free() −
Demo Langsung#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char name[100]; char *description; strcpy(name, "Zara Ali"); /* allocate memory dynamically */ description = malloc( 30 * sizeof(char) ); if( description == NULL ) { fprintf(stderr, "Error - unable to allocate required memory\n"); } else { strcpy( description, "Zara ali a DPS student."); } /* suppose you want to store bigger description */ description = realloc( description, 100 * sizeof(char) ); if( description == NULL ) { fprintf(stderr, "Error - unable to allocate required memory\n"); } else { strcat( description, "She is in class 10th"); } printf("Name = %s\n", name ); printf("Description: %s\n", description ); /* release memory using free() function */ free(description); }
Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut.
Name = Zara Ali Description: Zara ali a DPS student.She is in class 10th
Anda dapat mencoba contoh di atas tanpa mengalokasikan kembali memori tambahan, dan fungsi strcat() akan memberikan kesalahan karena kurangnya memori yang tersedia dalam deskripsi.
Bahasa C
Manajemen dan operasi pergudangan adalah disiplin yang kompleks yang membutuhkan beberapa lapisan koordinasi agar berhasil. Sistem Manajemen Gudang (WMS) sering menjadi platform standar yang digunakan untuk memusatkan semua proses gudang. Area fokus penting lainnya termasuk kontrol gudang, logistik
Manajemen Aset TI (ITAM) membutuhkan konstruksi proses bisnis yang cermat yang memungkinkan identifikasi, pelacakan, dan pengelolaan aset terkait TI untuk suatu organisasi. Untuk mempertahankan jumlah kontrol yang tepat atas semua aset, penting bagi perusahaan untuk mempertimbangkan dengan tepat bag
Definisi Perangkat Lunak Manajemen Inventaris Perangkat lunak manajemen inventaris adalah solusi berbasis komputer yang memberi organisasi kemampuan untuk melacak semua aspek inventaris mereka. Perangkat lunak manajemen inventaris bervariasi berdasarkan aplikasinya:dalam manajemen inventaris titik p
Definisi Manajemen Aset Manajemen aset adalah proses untuk melacak dan memantau aset tetap dan/atau bergerak perusahaan untuk tujuan akuntansi keuangan, pemeliharaan preventif, dan pencegahan pencurian. Manajemen aset penting untuk kepatuhan dan pengelolaan laba, tetapi menjadi sangat kompleks untuk