Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kombinasi dan realloccalloc. Merealokasi array dalam memori dan menginisialisasi elemennya menjadi 0.
Sintaks
void *_recalloc(
void *memblock,
size_t num,
size_t size
);
Parameter
memblock
Pointer ke blok memori yang dialokasikan sebelumnya.
number
Jumlah elemen.
size
Panjang dalam byte dari setiap elemen.
Nilai hasil
_recalloc
void mengembalikan pointer ke blok memori yang dialokasikan (dan mungkin dipindahkan).
Jika memori yang tersedia tidak cukup untuk memperluas blok ke ukuran tertentu, blok asli dibiarkan tidak berubah, dan NULL dikembalikan.
Jika ukuran yang diminta adalah nol, maka blok yang menunjuk ke oleh memblock dibesarkan; nilai yang dikembalikan adalah NULL, dan memblock dibiarkan menunjuk pada blok yang dibeberkan.
Nilai pengembalian menunjuk ke ruang penyimpanan yang cocok diselaraskan untuk penyimpanan jenis objek apa pun. Untuk mendapatkan penunjuk ke jenis selain void, gunakan jenis cast pada nilai yang dikembalikan.
Keterangan
Fungsi mengubah _recalloc ukuran blok memori yang dialokasikan. Argumen memblock menunjuk ke awal blok memori. Jika memblock adalah NULL, _recalloc berulah dengan cara yang sama seperti calloc dan mengalokasikan blok number * size byte baru. Setiap elemen diinisialisasi ke 0. Jika memblock bukan NULL, seharusnya penunjuk yang dikembalikan oleh panggilan sebelumnya ke calloc, , mallocatau realloc.
Karena blok baru dapat berada di lokasi memori baru, penunjuk yang dikembalikan _recalloc oleh tidak dijamin sebagai penunjuk yang melewati memblock argumen.
_recalloc
errno diatur ke ENOMEM jika alokasi memori gagal atau jika jumlah memori yang diminta melebihi _HEAP_MAXREQ. Untuk informasi tentang kode kesalahan ini dan lainnya, lihat errno, , _doserrno_sys_errlist, dan _sys_nerr.
recalloc
realloc panggilan untuk menggunakan fungsi C++ _set_new_mode untuk mengatur mode handler baru. Mode handler baru menunjukkan apakah, jika gagal, realloc adalah memanggil rutinitas handler baru seperti yang ditetapkan oleh _set_new_handler. Secara default, realloc tidak memanggil rutinitas handler baru saat gagal mengalokasikan memori. Anda dapat mengambil alih perilaku default ini sehingga, ketika _recalloc gagal mengalokasikan memori, realloc memanggil rutinitas handler baru dengan cara yang sama seperti yang new dilakukan operator ketika gagal karena alasan yang sama. Untuk mengambil alih default, panggil
_set_new_mode(1);
di awal program, atau tautan dengan NEWMODE.OBJ.
Ketika aplikasi ditautkan dengan versi debug pustaka run-time C, _recalloc diselesaikan ke _recalloc_dbg. Untuk informasi selengkapnya tentang bagaimana tumpukan dikelola selama proses debugging, lihat Tumpukan debug CRT.
_recalloc ditandai __declspec(noalias) dan __declspec(restrict), yang berarti bahwa fungsi dijamin tidak memodifikasi variabel global, dan bahwa penunjuk yang dikembalikan tidak diberi alias. Untuk informasi lebih lanjut, lihat noalias dan restrict.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
| Rutin | Header yang diperlukan |
|---|---|
_recalloc |
<stdlib.h> dan <malloc.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Lihat juga
Alokasi memori
_recalloc_dbg
_aligned_recalloc
_aligned_offset_recalloc
free
Opsi tautan