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<>?
mallocen 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 newou std::make_uniquequi allouera de la mémoire, ainsi que créer des objets appropriés. Dans les deux cas, std::vectoravec reserveprob. mieux aussi. Même si vous ne les utilisez pas, operator newc'est la façon idiomatique d'allouer de la mémoire, non malloc.