_recalloc
Birlikte realloc ve calloc.Bellekte bir dizi reallocates ve 0 öğelerini başlatır.
void *_recalloc(
void *memblock
size_t num,
size_t size
);
Parametreler
memblock
Daha önce ayrılmış bellek bloğu için işaretçi.num
Öğe sayısı.size
Her öğenin bayt cinsinden uzunluğu.
Dönüş Değeri
_recallocdöndüren bir void reallocated (ve büyük olasılıkla taşınan) bellek bloğu için işaretçi.
Blok verilen boyuta genişletmek için yeterli kullanılabilir bellek yoksa, özgün blok değiştirilmeden olduğu, ve NULL döndürülür.
İstenen boyuta sıfırdır sonra için blok işaret tarafından memblock serbest; Dönüş değeri NULL, ve memblock boşaltılmış bloğunda işaret bırakılır.
Dönüş değeri herhangi bir nesne türünü depolanması için yeterince hizalanması için garantili bir depolama alanı işaret eder.Bir işaretçi dışında bir tür almak için void, dönüş değerini artığını türü kullanın.
Notlar
_recalloc Fonksiyonu ayrılmış bellek bloğu boyutu değişir.memblock Bağımsız bellek bloğunun başlangıcına işaret ediyor.memblock Olan NULL, _recalloc aynı şekilde davranır calloc , yeni bir blok ayırır ve num * size bayt.Her öğe 0 olarak başlatılır.memblock Değil NULL, önceki bir çağrı tarafından döndürülen işaretçi olmalıdır calloc, malloc, veya realloc.
İşaretçiyi yeni blok yeni bir bellek konumunda olduğundan, _ tarafından döndürülenrecalloc üzerinden geçirilen işaretçi olmasını garanti edilmez memblock bağımsız değişkeni.
_recallocayarlar errno için ENOMEM bellek ayırma başarısız olursa veya bellek miktarını aşarsa isteniyorsa _HEAP_MAXREQ.Bu ve diğer hata kodları hakkında daha fazla bilgi için bkz: errno, _doserrno, _sys_errlist, and _sys_nerr.
recallocÇağrı realloc C++ kullanmak için _set_new_mode yeni bir işleyici modunu ayarlamak için işlevi.Yeni işleyicisi modu gösterir mi, başarısızlık, realloc tarafından belirlenen yeni işleyici yordamı çağırmak için ise _set_new_handler.Varsayılan olarak, realloc yeni bir işleyici yordamı bellek ayırma hatası çağırmaz.Bu varsayılan davranışı geçersiz kılmak böylece, _recalloc bellek ayırma işlemi realloc aynı şekilde yeni bir işleyici yordamı çağırır bu yolla new operatörü mü aynı nedenle başarısız olduğunda.Varsayılan geçersiz kılmak için çağrı
_set_new_mode(1)
program veya bağlantı newmode.obj ile erken.
Ne zaman uygulama bağlı c çalışma zamanı kitaplıkları, _ hata ayıklama sürümü ilerecalloc çözümler _recalloc_dbg.Yığın hata ayıklama işlemi sırasında nasıl yönetildiği hakkında daha fazla bilgi için Hata ayıklama crt öbek.
_recallocişaretlenmiş __declspec(noalias) ve __declspec(restrict), işlev genel değişkenleri değiştirmek için garantili ve işaretçiyi verdiğini başka ad verilmiş değil.Daha fazla bilgi için bkz: noalias ve kısıtlamak.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_recalloc |
<stdlib.h> ve <malloc.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
.NET Framework Eşdeğeri
Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.