_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.

Ayrıca bkz.

Başvuru

Bellek Ayırma

_recalloc_dbg

_aligned_recalloc

_aligned_offset_recalloc

serbest

Kavramlar

Bağlantı Seçenekleri