_recalloc_dbg
Merealokasi array dan menginisialisasi elemennya ke 0 (hanya versi debug).
Sintaks
void *_recalloc_dbg(
void *userData,
size_t num,
size_t size,
int blockType,
const char *filename,
int linenumber
);
Parameter
userData
Penunjuk ke blok memori yang dialokasikan sebelumnya.
number
Jumlah blok memori yang diminta.
size
Ukuran yang diminta dari setiap blok memori (byte).
blockType
Jenis blok memori yang diminta: _CLIENT_BLOCK
atau _NORMAL_BLOCK
.
Untuk informasi tentang jenis blok alokasi dan cara penggunaannya, lihat Jenis blok pada tumpukan debug.
filename
Penunjuk ke nama file sumber yang meminta operasi alokasi atau NULL
.
linenumber
Nomor baris dalam file sumber tempat operasi alokasi diminta atau NULL
.
Parameter filename
dan linenumber
hanya tersedia ketika _recalloc_dbg
telah dipanggil secara eksplisit atau _CRTDBG_MAP_ALLOC
konstanta pra-prosesor telah ditentukan.
Nilai hasil
Setelah berhasil diselesaikan, fungsi ini mengembalikan penunjuk ke bagian pengguna dari blok memori yang direalokasikan, memanggil fungsi handler baru, atau mengembalikan NULL
. Untuk deskripsi lengkap tentang perilaku pengembalian, lihat bagian Keterangan berikut ini. Untuk informasi selengkapnya tentang bagaimana fungsi handler baru digunakan, lihat _recalloc
fungsi .
Keterangan
_recalloc_dbg
adalah versi debug dari _recalloc
fungsi. Ketika _DEBUG
tidak ditentukan, setiap panggilan ke _recalloc_dbg
dikurangi menjadi panggilan ke _recalloc
. Baik _recalloc
dan _recalloc_dbg
realokasi blok memori di tumpukan dasar, tetapi _recalloc_dbg
mengakomodasi beberapa fitur penelusuran kesalahan: buffer di salah satu sisi bagian pengguna blok untuk menguji kebocoran, parameter jenis blok untuk melacak jenis alokasi tertentu, dan filename
/linenumber
informasi untuk menentukan asal permintaan alokasi.
_recalloc_dbg
merealokasi blok memori yang ditentukan dengan sedikit lebih banyak ruang daripada ukuran yang diminta (number
* size
) yang mungkin lebih besar atau kurang dari ukuran blok memori yang dialokasikan awalnya. Ruang ekstra digunakan oleh manajer timbunan debug untuk menautkan blok memori debug dan untuk menyediakan aplikasi dengan informasi header debug dan menimpa buffer. Realokasi dapat mengakibatkan keduanya memindahkan blok memori asli ke lokasi yang berbeda dalam tumpukan, dan mengubah ukuran blok memori. Bagian pengguna dari blok diisi dengan nilai 0xCD dan setiap buffer penimpaan diisi dengan 0xFD.
_recalloc_dbg
errno
diatur ke ENOMEM
jika alokasi memori gagal; EINVAL
dikembalikan jika jumlah memori yang diperlukan (termasuk overhead yang disebutkan sebelumnya) melebihi _HEAP_MAXREQ
. Untuk informasi tentang ini dan kode kesalahan lainnya, lihat errno
, , _doserrno
_sys_errlist
, dan _sys_nerr
.
Untuk informasi tentang bagaimana blok memori dialokasikan, diinisialisasi, dan dikelola dalam versi debug timbunan dasar, lihat detail timbunan debug CRT. Untuk informasi tentang perbedaan antara fungsi timbunan standar dan versi debug, lihat Versi debug fungsi alokasi timbunan.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_recalloc_dbg |
<crtdbg.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Pustaka
Debug versi pustaka run-time C saja.