Para obter uma void *
função de um CI, seria algo assim (exemplo muito básico):
void *get_ptr(size_t size)
{
void *ptr = malloc(size);
return ptr;
}
Como obtenho o mesmo resultado ao usar std::unique_ptr<>
?
stackoverflow.com/questions/4316727/…
—
dragosht 16/01
Por favor, explique o problema que você está tendo ao fazê-lo.
—
molbdnilo 16/01
Veja esta resposta para o void genérico unique_ptr: stackoverflow.com/a/39288979/2527795
—
vll 16/01/17
Observe que quase nunca deve haver um motivo para usar
—
noz
malloc
em C ++ como este. Você está retornando um ponteiro para a memória bruta, na qual precisa colocar novos objetos antes de poder usá-lo. Se você não tiver um bom motivo para criar os objetos mais tarde do que quando estiver alocando memória, deverá usar new
ou o std::make_unique
que alocará memória e criar objetos apropriados. Em ambos os casos std::vector
com reserve
é prov. melhor também. Mesmo que você não os use, operator new
é a maneira idiomática de alocar memória, não malloc
.