Condividi tramite


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

Vedere anche

Riferimenti

Allineamento dati