_aligned_recalloc_dbg
Zmienia rozmiar bloku pamięci, które zostało przydzielone z _aligned_malloc lub _aligned_offset_malloc i inicjuje pamięci na 0 (tylko w wersji debugowania).
void * _aligned_recalloc_dbg(
void * memblock,
size_t num,
size_t size,
size_t alignment,
const char *filename,
int linenumber
);
Parametry
[w] memblock
Bieżący wskaźnik bloku pamięci.[w] num
Liczba elementów.[w] size
Rozmiar w bajtach każdego elementu.[w] alignment
Wartość wyrównania, która musi być całkowitą potęgą liczby 2.[w] filename
Wskaźnik do nazwy pliku źródłowego, który żądał operacji alokacji lub NULL.[w] linenumber
Numer w pliku źródłowym, której zażądano operacji alokacji wiersza lub NULL.
Wartość zwracana
_aligned_recalloc_dbg Zwraca wartość void wskaźnik do bloku pamięci ponownie przydzielona (i prawdopodobnie przenoszenia).Wartość zwracana jest NULL Jeśli rozmiar wynosi zero, a argument bufora nie jest NULL, lub jeśli nie ma za mało dostępnej pamięci, aby rozwinąć bloku do podanego rozmiaru.W przypadku pierwszego oryginalnego bloku jest zwalniane.W drugim przypadku oryginalnego bloku jest bez zmian.Wskazuje wartość zwracaną miejsca w magazynie, który może być odpowiednio dostosowane do przechowywania obiekty dowolnego typu.Aby uzyskać wskaźnik do innego typu niż void, użyj typu rzutowania na wartość zwracaną.
Jest to błąd alokacji pamięci i zmienić wyrównanie bloku.
Uwagi
_aligned_recalloc_dbg jest to wersja debugowania _aligned_recalloc funkcji.Gdy _DEBUG nie jest zdefiniowany, każde wywołanie _aligned_recalloc_dbg jest ograniczone do wywołania _aligned_recalloc.Obie _aligned_recalloc i _aligned_recalloc_dbg ponownie przydzielić bloku pamięci w stosie podstawowy, ale _aligned_recalloc_dbg uwzględnia kilka funkcji debugowania: buforów na dowolnej stronie użytkownika część bloku do testowania przecieków, parametr typu bloku do śledzenia typów określonych alokacji i filename/linenumber informacji do określenia pochodzenia żądania alokacji.
_aligned_recalloc_dbg reallocates bloku pamięci określony nieco więcej miejsca niż wymagany (num * size) które może być większa lub mniejsza niż rozmiar bloku pierwotnie alokacji pamięci.Dodatkowe miejsce jest używane przez menedżera stosu debugowania, do łączenia bloków pamięci debugowania i do dostarczenia aplikacji informacji nagłówka debugowania i zastąpienia buforów.Konieczna zmiana alokacji może spowodować przeniesienie oryginalnego bloku pamięci do innej lokalizacji w stosie, a także zmienianie rozmiaru bloku pamięci.Użytkownik część bloku jest wypełniany wartość 0x50 i buforów Zastąp są wypełniane 0xFD.
_aligned_recalloc_dbg Ustawia errno do ENOMEM Jeśli alokacja pamięci nie powiedzie się, EINVAL Jeśli przekracza ilość pamięci potrzebne (w tym przeciążenia wymienionych wcześniej), zwracana jest _HEAP_MAXREQ.Aby uzyskać informacji o tej i innych kodów błędów, zobacz errno, _doserrno, _sys_errlist, and _sys_nerr.
_aligned_recalloc_dbg również sprawdza poprawność parametrów.Jeśli alignment nie jest potęgi 2, ta funkcja wywołuje program obsługi nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli jest dozwolone wykonywanie, aby kontynuować, ta funkcja zwraca NULL i ustawia errno do EINVAL.
Informacji dotyczących sposobu bloków pamięci są przydzielone, został zainicjowany i zarządzanych w wersji podstawowej stosu debugowania, zobacz Szczegóły dotyczące stosu debugowania CRT.Uzyskać informacje dotyczące typów bloku alokacji i sposób ich użycia, zobacz typów bloków na debugowanie stosu.Aby informacji na temat różnic między w kompilację debugowania aplikacji wywoływania funkcji standardowego stosu oraz jego wersję debugowania, zobacz Wersja debugowania funkcji alokacji stosu.
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
_aligned_recalloc_dbg |
< crtdbg.h > |
Aby uzyskać więcej informacji o zgodności, zobacz zgodności we wprowadzeniu.
Biblioteki
Debugowanie wersje C biblioteki czasu wykonywania 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łania platformy.