Udostępnij za pośrednictwem


_aligned_offset_recalloc_dbg

Zmienia rozmiar bloku pamięci, która została przydzielona z _aligned_malloc lub _aligned_offset_malloc i inicjalizuje pamięć do 0 (tylko wersja debugowania).

void * _aligned_offset_recalloc_dbg(
   void *memblock, 
   size_t num, 
   size_t size, 
   size_t alignment,
   size_t offset,
   const char *filename,
   int linenumber
);

Parametry

  • [w]memblock
    Bieżący wskaźnik bloku pamięci.

  • [w]num
    Liczba elementów.

  • [w]size
    Długość w bajtach każdego elementu.

  • [w]alignment
    Wartość wyrównania musi być całkowitą potęgą liczby 2.

  • [w]offset
    Przesunięcie w alokacji pamięci, aby wymusić wyrównanie.

  • [w]filename
    Wskaźnik do nazwy pliku źródłowego, który zażądał realloc operacji lub NULL.

  • [w]linenumber
    Numer w pliku źródłowym gdzie realloc operacji została żądana ani mieć wartości NULL.

Wartość zwracana

_aligned_offset_recalloc_dbgZwraca void wskaźnik do bloku pamięci reallocated (i ewentualnie przeniesiony).Zwracana jest wartość NULL , jeśli rozmiar jest zero, a argument bufor nie jest NULL, lub jeśli jest za mało dostępnej pamięci, aby rozwinąć bloku do podanego rozmiaru.W pierwszym przypadku oryginalnego bloku jest zwalniana.W drugim przypadku oryginalnego bloku jest bez zmian.Zwracana wartość wskazuje miejsce w magazynie jest gwarantowane zostały odpowiednio dostosowane do przechowywania dowolnego typu obiektu.Aby uzyskać wskaźnika typu innego niż void, typ, oddanych na wartości zwracanej.

Uwagi

_aligned_offset_realloc_dbgjest w wersji debugowej z _aligned_offset_recalloc funkcji.Gdy _DEBUG nie jest zdefiniowana, każde wywołanie _aligned_offset_recalloc_dbg jest zredukowana do wywołania _aligned_offset_recalloc.Zarówno _aligned_offset_recalloc i _aligned_offset_recalloc_dbg ponownie przydzielić bloku pamięci w stercie bazowy, ale _aligned_offset_recalloc_dbg użytą kilka funkcji debugowania: buforów po obu stronach użytkownika część bloku do badania pod kątem przecieków, parametr typu blok do śledzenia typów określonych alokacji i filename/linenumber informacji do ustalenia pochodzenia żądania alokacji.

_aligned_offset_realloc_dbgreallocates blok pamięci określony nieco większej ilości miejsca niż żądana newSize.newSizemoże być większa lub mniejsza niż rozmiar bloku pamięci pierwotnie przyznane.Dodatkowe miejsce jest używany przez menedżera sterty debugowania połączyć bloków pamięci debugowania oraz do zapewnienia stosowania z informacjami nagłówka debugowania i zastąpić buforów.Ponowny przydział może spowodować przeniesienie oryginalnego bloku pamięci do innej lokalizacji na stercie, jak również zmianę rozmiaru bloku pamięci.Jeśli blok pamięci jest przenoszony, zawartość oryginalnego bloku są zastępowane.

Ta funkcja ustawia errno do ENOMEM czy alokacja pamięci nie powiodła się, czy żądany rozmiar (num * size) była większa niż _HEAP_MAXREQ.Aby uzyskać więcej informacji o errno, zobacz errno, _doserrno, _sys_errlist i _sys_nerr.Ponadto _aligned_offset_recalloc_dbg sprawdza poprawność jego parametry.Jeśli alignment nie jest potęgą liczby 2 lub jeśli offset jest większa niż lub równa żądanym rozmiarze i różną od zera, funkcja ta wywołuje obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie mogą w dalszym ciągu, funkcja ta zwraca NULL i ustawia errno do EINVAL.

Informacje o jak bloków pamięci są przydzielane, zainicjowany i zarządzane w wersji debugowej bazowy sterty, zobacz Zarządzanie pamięcią i debugowania sterty.Informacje o alokacji typów bloku i w jaki sposób są używane, zobacz Typów bloków na stercie debugowania.Aby uzyskać informacje dotyczące różnic między wywołaniem funkcji standardowego sterty i jej wersję debugowania w trybie debugowania aplikacji, zobacz przy użyciu wersji Versus the Base wersja do debugowania.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_aligned_offset_recalloc_dbg

<malloc.h>

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

Zobacz też

Informacje

Wyrównanie danych