_aligned_offset_realloc
Modifica le dimensioni di un blocco di memoria allocato con _aligned_malloc
o _aligned_offset_malloc
.
Sintassi
void * _aligned_offset_realloc(
void *memblock,
size_t size,
size_t alignment,
size_t offset
);
Parametri
memblock
Puntatore al blocco di memoria corrente.
size
Dimensione dell'allocazione di memoria.
alignment
Valore di allineamento, che deve essere una potenza intera di 2.
offset
Offset nell'allocazione di memoria per imporre l'allineamento.
Valore restituito
_aligned_offset_realloc
restituisce un puntatore void al blocco di memoria riallocato (e possibilmente spostato). Il valore restituito è NULL
se la dimensione è zero e l'argomento buffer non NULL
è o se la memoria disponibile non è sufficiente per espandere il blocco fino alle dimensioni specificate. Nel primo caso il blocco originale viene liberato. Nel secondo caso il blocco originale resta invariato. Il valore restituito punta a uno spazio di archiviazione allineato in modo adeguato per l'archiviazione di qualsiasi tipo di oggetto. Per ottenere un puntatore a un tipo diverso da void
, usare un cast del tipo sul valore restituito.
_aligned_offset_realloc
è contrassegnato __declspec(noalias)
e __declspec(restrict)
, il che significa che la funzione non deve modificare le variabili globali e che il puntatore restituito non è aliasato. Per altre informazioni, vedere noalias
e restrict
.
Osservazioni:
Analogamente _aligned_offset_malloc
a , _aligned_offset_realloc
consente l'allineamento di una struttura in corrispondenza di un offset all'interno della struttura.
_aligned_offset_realloc
è basato su malloc
. Per altre informazioni sull'uso di _aligned_offset_malloc
, vedere malloc
. Se memblock
è NULL
, la funzione chiama _aligned_offset_malloc
internamente.
La funzione imposta errno
su ENOMEM
se l'allocazione di memoria non riesce o se la dimensione richiesta è maggiore di _HEAP_MAXREQ
. Per altre informazioni su errno
, vedere errno
, _doserrno
, _sys_errlist
e _sys_nerr
. _aligned_offset_realloc
, inoltre, convalida i propri parametri. Se alignment
non è una potenza di 2 o se offset
è diverso da zero e maggiore o uguale a size
, questa funzione richiama il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, la funzione restituisce NULL
e imposta errno
su EINVAL
.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_aligned_offset_realloc |
<malloc.h> |
Esempio
Per ulteriori informazioni, vedere _aligned_malloc
.