Вам, вероятно, следует использовать HeapReAlloc , поскольку Windows, без сомнения, будет иметь оптимизацию, если сможет просто расширить память без копирования данных.
Например, я видел реализации realloc
(стандарт C), который проверяет, может ли текущий блок просто поглотить свободный блок, следующий за ним.Если это так, он делает это, чтобы избежать операции копирования.Если нет, он выделяет новую память и копирует ее перед тем, как освободить старую.
Еще одно преимущество заключается в том, что вы минимизируете требуемую дополнительную память.В версии с копированием в какой-то момент у вас должно быть две копии текущих данных.