Obtenir un à void *
partir d'une fonction dans CI ferait quelque chose comme ça (exemple très basique):
void *get_ptr(size_t size)
{
void *ptr = malloc(size);
return ptr;
}
Comment obtenir le même résultat lors de l'utilisation std::unique_ptr<>
?
malloc
en C ++ comme ceci. Vous retournez un pointeur vers la mémoire brute, dans lequel vous devez placer de nouveaux objets avant de pouvoir l'utiliser. Si vous n'avez pas une bonne raison de créer les objets plus tard que lorsque vous allouez de la mémoire, vous devez utiliser new
ou std::make_unique
qui allouera de la mémoire, ainsi que créer des objets appropriés. Dans les deux cas, std::vector
avec reserve
prob. mieux aussi. Même si vous ne les utilisez pas, operator new
c'est la façon idiomatique d'allouer de la mémoire, non malloc
.