_aligned_offset_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_offset_realloc_dbg(    void *memblock,     size_t size,     size_t alignment,    size_t offset,    const char *filename,    int linenumber  );

Parametry

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

  • [w]size
    Rozmiar alokacji pamięci.

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

  • [w]offset
    Przesunięcie alokacji pamięci, aby wymusić wyrównanie.

  • [w]filename
    Wskaźnik do nazwy pliku źródłowego, który żądał aligned_offset_realloc operacji ani mieć wartości NULL.

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

Wartość zwracana

_aligned_offset_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 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ą.

Uwagi

_aligned_offset_realloc_dbg jest wersją debugowania funkcji _aligned_offset_realloc.Po _DEBUG nie jest zdefiniowana, każde wywołanie _aligned_offset_realloc_dbg zmniejsza się do wywołania _aligned_offset_realloc.Oba _aligned_offset_realloc i _aligned_offset_realloc_dbg alokację bloku pamięci w stosie podstawową, ale _aligned_offset_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.

Podobnie jak _aligned_offset_malloc, _aligned_offset_realloc_dbg umożliwia strukturze do wyrównania przy przesunięcie w strukturze.

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

Ta funkcja ustawia errno na ENOMEM jeśli alokacja pamięci nie powiodła się lub jeśli żądany rozmiar był większy niż _HEAP_MAXREQ.Aby dowiedzieć się więcej o obiekcie errno, zobacz errno, _doserrno, _sys_errlist, and _sys_nerr._aligned_offset_realloc_dbg również sprawdza poprawność parametrów.Jeśli alignment nie jest potęgą liczby 2 lub jeśli offset jest większy lub równy size i różna od zera, ta funkcja wywołuje program obsługi nieprawidłowych parametrów, 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_offset_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