_aligned_realloc_dbg

Zmienia rozmiar bloku pamięci, które zostało przydzielone z _aligned_malloc lub _aligned_offset_malloc (tylko w wersji debugowania).

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

Parametry

  • [w]memblock
    Bieżący wskaźnik bloku pamięci.

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

  • [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ł realloc operacji ani mieć wartości NULL.

  • [w]linenumber
    Numer w pliku źródłowym wiersza gdzie realloc operacja zakończyła się żądany ani mieć wartości NULL.

Wartość zwracana

_aligned_realloc_dbgZwraca 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 oryginalne odpowiada 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_realloc_dbg jest wersją debugowania funkcji _aligned_realloc.Po _DEBUG nie jest zdefiniowana, każde wywołanie _aligned_realloc_dbg zmniejsza się do wywołania _aligned_realloc.Oba _aligned_realloc i _aligned_realloc_dbg alokację bloku pamięci w stosie podstawową, ale _aligned_realloc_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_realloc_dbgreallocates bloku pamięci określony nieco więcej miejsca niż żądana newSize.newSizemoż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.Jeśli blok pamięci jest przenoszony, zawartość bloku oryginalny zostaną zastąpione.

_aligned_realloc_dbgUstawia errno do ENOMEM Jeśli alokacja pamięci nie powiedzie się lub przekracza ilość pamięci potrzebne (w tym przeciążenia wcześniej wymienione) _HEAP_MAXREQ.Aby uzyskać informacji o tej i innych kodów błędów, zobacz errno, _doserrno, _sys_errlist, and _sys_nerr.

_aligned_realloc_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_realloc_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ć standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz przykłady wywołania platformy.

Zobacz też

Informacje

Procedury debugowania