_aligned_offset_realloc_dbg
veya _aligned_offset_malloc
ile _aligned_malloc
ayrılmış bir bellek bloğunun boyutunu değiştirir (yalnızca hata ayıklama sürümü).
Sözdizimi
void * _aligned_offset_realloc_dbg(
void *memblock,
size_t size,
size_t alignment,
size_t offset,
const char *filename,
int linenumber
);
Parametreler
memblock
Geçerli bellek bloğu işaretçisi.
size
Bellek ayırmanın boyutu.
alignment
Hizalama değeri, 2 tamsayı gücü olmalıdır.
offset
Hizalamayı zorlamak için bellek ayırmaya uzaklık.
filename
veya NULL
işlemini isteyen kaynak dosyanın adına yönelik aligned_offset_realloc
işaretçi.
linenumber
İşlemin istendiği kaynak dosyadaki aligned_offset_realloc
satır numarası veya NULL
.
Dönüş değeri
_aligned_offset_realloc_dbg
yeniden ayrılan (ve büyük olasılıkla taşınan) bellek bloğu için geçersiz bir işaretçi döndürür. Dönüş değeri, NULL
boyutun sıfır olması ve arabellek bağımsız değişkeninin NULL
olmaması veya bloğu verilen boyuta genişletmek için yeterli kullanılabilir bellek olmamasıdır. İlk durumda, özgün blok serbesttir. İkinci durumda, özgün blok değiştirilmez. Dönüş değeri, herhangi bir nesne türünün depolaması için uygun olan bir depolama alanını gösterir. Void dışında bir türe işaretçi almak için dönüş değerinde tür tür ataması kullanın.
Açıklamalar
_aligned_offset_realloc_dbg
işlevin _aligned_offset_realloc
hata ayıklama sürümüdür. Tanımlanmadığında _DEBUG
, çağrısının her _aligned_offset_realloc_dbg
biri öğesine yapılan çağrıya _aligned_offset_realloc
indirgenir. Hem hem _aligned_offset_realloc_dbg
de _aligned_offset_realloc
temel yığındaki bir bellek bloğunu yeniden ayırın, ancak _aligned_offset_realloc_dbg
birkaç hata ayıklama özelliği içerir: sızıntıları test etmek için bloğun kullanıcı bölümünün her iki tarafındaki arabellekler ve filename
/linenumber
ayırma isteklerinin kaynağını belirlemeye yönelik bilgiler. Blok türü parametresiyle belirli ayırma türlerini izlemek, hizalanmış ayırmalar için desteklenen bir hata ayıklama özelliği değildir. Hizalanmış ayırmalar bir _NORMAL_BLOCK
blok türü olarak görünür.
gibi _aligned_offset_malloc
, _aligned_offset_realloc_dbg
bir yapının yapı içindeki bir uzaklıkta hizalanmasına izin verir.
_realloc_dbg
belirtilen bellek bloğunu istenenden newSize
biraz daha fazla alanla yeniden ayırır. newSize
özgün olarak ayrılan bellek bloğunun boyutundan büyük veya daha küçük olabilir. Ek alan, hata ayıklama yığın yöneticisi tarafından hata ayıklama bellek bloklarını bağlamak ve uygulamaya hata ayıklama üst bilgisi bilgileri sağlamak ve arabelleklerin üzerine yazmak için kullanılır. Yeniden konumlandırma hem özgün bellek bloğunu yığında farklı bir konuma taşıyabilir hem de bellek bloğunun boyutunu değiştirebilir. Bellek bloğu taşınırsa, özgün bloğun içeriğinin üzerine yazılır.
Bu işlev, bellek ayırmanın başarısız olup olmadığını veya istenen boyutun değerinden _HEAP_MAXREQ
büyük olup olmadığını olarak ayarlar.errno
ENOMEM
hakkında errno
daha fazla bilgi için bkz.errno
, _doserrno
, _sys_errlist
ve _sys_nerr
. Ayrıca parametrelerini _aligned_offset_realloc_dbg
doğrular. alignment
2'nin gücü değilse veya sıfır olmayan ve değerinden büyük veya buna eşitsesize
offset
, bu işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır. Yürütmenin devam etmesi için izin verilirse, bu işlev döndürür NULL
ve olarak EINVAL
ayarlanırerrno
.
Temel yığının hata ayıklama sürümünde bellek bloklarının nasıl ayrıldığı, başlatıldığı ve yönetildiğini öğrenmek için bkz . CRT hata ayıklama yığını ayrıntıları. Ayırma bloğu türleri ve bunların nasıl kullanıldığı hakkında bilgi için bkz . Hata ayıklama yığınındaki blok türleri. Standart yığın işlevleri ile bunların hata ayıklama sürümleri arasındaki farklar hakkında bilgi için bkz . Yığın ayırma işlevlerinin sürümlerinde hata ayıklama.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_aligned_offset_realloc_dbg |
<Crtdbg> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Kitaplıklar
Yalnızca C çalışma zamanı kitaplıklarının sürümlerinde hata ayıklama.
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin