_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.

Zobacz też

Informacje

Procedury debugowania