Um void *
eine Funktion von einer Funktion in CI zu erhalten, gehen Sie wie folgt vor (sehr einfaches Beispiel):
void *get_ptr(size_t size)
{
void *ptr = malloc(size);
return ptr;
}
Wie erreiche ich das gleiche Ergebnis bei der Verwendung std::unique_ptr<>
?
malloc
C ++ wie dieses zu verwenden. Sie geben einen Zeiger auf den Rohspeicher zurück, in den Sie neue Objekte einfügen müssen, bevor Sie ihn verwenden dürfen. Wenn Sie keinen guten Grund haben, die Objekte zu einem späteren Zeitpunkt als beim Zuweisen von Speicher zu erstellen, sollten Sie verwenden new
oder verwenden std::make_unique
, um Speicher zuzuweisen, und geeignete Objekte erstellen. In beiden Fällen ist std::vector
mit reserve
prob. besser auch. Auch wenn Sie diese nicht verwenden, operator new
ist dies die idiomatische Art, Speicher zuzuweisen, nicht malloc
.