Condividi tramite


_aligned_realloc

Modifica le dimensioni di un blocco di memoria che è stato allocato con _aligned_malloc o _aligned_offset_malloc.

void * _aligned_realloc(
   void *memblock, 
   size_t size, 
   size_t alignment
);

Parametri

  • [in] memblock
    Il puntatore al blocco di memoria corrente.

  • [in] size
    La dimensione dell'allocazione di memoria richiesta.

  • [in] alignment
    Il valore di allineamento, che deve essere una potenza intera di 2.

Valore restituito

_aligned_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, 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.

È un errore riallocare la memoria e modificare l'allineamento di un blocco.

Note

_aligned_realloc è basato su malloc. Per ulteriori informazioni sull'utilizzo di _aligned_offset_malloc, vedere malloc.

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_realloc convalida i suoi parametri. Se alignment non è una potenza di 2, questa funzione chiama il gestore di 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_realloc

<malloc.h>

Esempio

Per ulteriori informazioni, vedere _aligned_malloc.

Vedere anche

Riferimenti

Allineamento dati