_aligned_offset_realloc
Modifica le dimensioni di un blocco di memoria che è stato allocato con _aligned_malloc o _aligned_offset_malloc.
void * _aligned_offset_realloc(
void *memblock,
size_t size,
size_t alignment,
size_t offset
);
Parametri
memblock
Il puntatore al blocco di memoria corrente.size
La dimensione dell'allocazione di memoria.alignment
Il valore di allineamento, che deve essere una potenza intera di 2.offset
L'offset dell'allocazione di memoria per forzare l'allineamento.
Valore restituito
_aligned_offset_realloc restituisce un puntatore void al blocco di memoria riallocato (ed eventualmente spostato). Il valore restituito è NULL se la dimensione è zero e l'argomento del buffer non è NULL, o se non è disponibile memoria sufficiente per espandere il blocco alla dimensione specificata. Nel primo caso, il blocco originale viene liberato. Nel secondo caso, il blocco originale rimane invariato. I valore restituito punta ad uno spazio di memoria che garantisce l'allineamento adeguato per l'archiviazione di qualsiasi tipo di oggetto. Per ottenere un puntatore a un tipo diverso da void, utilizzare un cast di tipo sul valore di ritorno.
_aligned_offset_realloc è contrassegnata in __declspec(noalias) e __declspec(restrict), pertanto la funzione garantisce che le variabili globali non vengono modificate, e che il puntatore restituito è già utilizzato. Per ulteriori informazioni, vedere noalias e limiti.
Note
Come _aligned_offset_malloc, _aligned_offset_realloc consente a una struttura di essere allineata su true in un offset nella struttura.
_aligned_offset_realloc è basato su malloc. Per ulteriori informazioni sull'utilizzo di _aligned_offset_malloc, consultare malloc. Se memblock è NULL, la funzione chiama _aligned_offset_malloc internamente.
Questa funzione imposta errno in ENOMEM se non è riuscita l'allocazione della memoria o se la dimensione richiesta è maggiore di _HEAP_MAXREQ. Per ulteriori informazioni su errno, vedere errno, _doserrno, _sys_errlist, and _sys_nerr. Inoltre, _aligned_offset_realloc convalida i suoi parametri. Se alignment non è una potenza di 2 o se offset è maggiore o uguale a size e diverso da zero, questa funzione chiama il gestore del parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, questa funzione restituisce NULL e imposta errno su EINVAL.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_aligned_offset_realloc |
<malloc.h> |
Esempio
Per ulteriori informazioni, vedere _aligned_malloc.