Udostępnij przez


_aligned_malloc_dbg

Przydziela pamięć na określonej granicy wyrównania z dodatkowym miejscem na nagłówek debugowania i zastępowanie buforów (tylko wersja debugowania).

Składnia

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

Parametry

size
Rozmiar żądanej alokacji pamięci.

alignment
Wartość wyrównania, która musi być całkowitą potęgą liczby 2.

filename
Wskaźnik do nazwy pliku źródłowego, który zażądał operacji alokacji lub NULL.

linenumber
Numer wiersza w pliku źródłowym, w którym zażądano operacji alokacji lub NULL.

Wartość zwracana

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

Uwagi

_aligned_malloc_dbg jest wersją _aligned_malloc debugowania funkcji. Jeśli _DEBUG nie jest zdefiniowane, każde wywołanie metody _aligned_malloc_dbg jest zmniejszane do wywołania metody _aligned_malloc. Zarówno _aligned_malloc , jak i _aligned_malloc_dbg przydziel blok pamięci w stercie podstawowej, ale _aligned_malloc_dbg oferuje kilka funkcji debugowania: bufory po obu stronach bloku w celu przetestowania przecieków i filename/linenumber informacji w celu określenia źródła żądań alokacji. Śledzenie określonych typów alokacji przy użyciu parametru typu bloku nie jest obsługiwaną funkcją debugowania dla wyrównanych alokacji. Alokacje wyrównane będą wyświetlane jako _NORMAL_BLOCK typ bloku.

_aligned_malloc_dbg przydziela blok pamięci z nieco większą ilością miejsca niż żądany sizeelement . Dodatkowe miejsce jest używane przez menedżera sterty debugowania, aby połączyć bloki pamięci debugowania i udostępnić aplikacji informacje nagłówka debugowania i zastąpić bufory. Po przydzieleniu bloku część użytkownika bloku jest wypełniona wartością 0xCD, a każdy z buforów zastępowania jest wypełniony 0xFD.

_aligned_malloc_dbg ustawia wartość errno , ENOMEM jeśli alokacja pamięci zakończy się niepowodzeniem lub jeśli wymagana ilość pamięci (w tym narzut wymieniony wcześniej) przekracza _HEAP_MAXREQwartość . Aby uzyskać informacje o tym i innych kodach błędów, zobacz errno, _doserrno, _sys_errlisti _sys_nerr. _aligned_malloc_dbg Ponadto weryfikuje jego parametry. Jeśli alignment nie jest mocą 2 lub size ma wartość zero, ta funkcja wywołuje nieprawidłową procedurę obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, ta funkcja zwraca NULL i ustawia wartość errno .EINVAL

Aby uzyskać informacje na temat przydzielania, inicjowania i zarządzania blokami pamięci w wersji debugowania sterty podstawowej, zobacz szczegóły sterty debugowania CRT. Aby uzyskać informacje o typach bloków alokacji i sposobie ich użycia, zobacz Typy bloków na stercie debugowania. Aby uzyskać informacje o różnicach między standardowymi funkcjami sterty i ich wersjami debugowania, zobacz Debugowanie wersji funkcji alokacji sterty.

Wymagania

Procedura Wymagany nagłówek
_aligned_malloc_dbg <Crtdbg.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Biblioteki

Debugowanie tylko wersji bibliotek czasu wykonywania języka C.

Zobacz też

Procedury debugowania