Udostępnij za pośrednictwem


_aligned_offset_malloc_dbg

Przydziela pamięć na granicy określone wyrównanie (tylko wersja debugowania).

void * _aligned_offset_malloc_dbg(
   size_t size, 
   size_t alignment, 
   size_t offset,
   const char *filename,
   int linenumber 
);

Parametry

  • [w]size
    Rozmiar alokacji żądanej pamięci.

  • [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ł operacji alokacji lub NULL.

  • [w]linenumber
    Numer w pliku źródłowym, jeżeli zażądano operacji alokacji lub NULL.

Wartość zwracana

Wskaźnik do bloku pamięci, która została przydzielona lub NULL , jeśli operacja nie powiodła się.

Uwagi

_aligned_offset_malloc_dbgjest w wersji debugowej z _aligned_offset_malloc funkcji.Gdy _DEBUG nie jest zdefiniowana, każde wywołanie _aligned_offset_malloc_dbg jest zredukowana do wywołania _aligned_offset_malloc.Zarówno _aligned_offset_malloc i _aligned_offset_malloc_dbg zaalokować blok pamięci w stercie bazowy, ale _aligned_offset_malloc_dbg oferuje 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_malloc_dbgalokuje blok pamięci, z nieco więcej miejsca niż żądana size.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.Gdy blok jest przydzielone, część użytkownikowi bloku jest wprowadzana wartość 0x50 i każdego z buforów Zastąp wypełniane są 0xFD.

_aligned_offset_malloc_dbgjest przydatne w sytuacjach, gdy potrzebna jest wyrównanie zagnieżdżonych elementu; na przykład, jeśli potrzebne było wyrównanie zagnieżdżonych klasy.

_aligned_offset_malloc_dbgjest oparta na malloc; Aby uzyskać więcej informacji, zobacz malloc.

Ta funkcja ustawia errno do ENOMEM czy alokacja pamięci nie powiodła się, czy żądany rozmiar był większy niż _HEAP_MAXREQ.Aby uzyskać więcej informacji o errno, zobacz errno, _doserrno, _sys_errlist i _sys_nerr.Ponadto _aligned_offset_malloc sprawdza poprawność jego parametry.Jeśli alignment nie jest potęgą liczby 2 lub jeśli offset jest większa niż lub równa size 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.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_aligned_offset_malloc_dbg

<crtdbg.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Biblioteki

Debug wersje biblioteki uruchomieniowej c tylko.

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

Debugowania procedur