_aligned_malloc_dbg
Przydziela pamięć na określonej granicy wyrównania z dodatkowym miejscem na nagłówek debugowania i zastępowanie (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: 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 size
element . 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ć. Po przydzieleniu bloku część użytkownika bloku jest wypełniona wartością 0xCD, a każdy z 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_MAXREQ
wartość . Aby uzyskać informacje o tym i innych kodach błędów, zobacz errno
, _doserrno
, _sys_errlist
i _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.