GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Richtige Methode zum Erstellen von unique_ptr, das ein zugewiesenes Array enthält

Verwenden Sie die Array-Version :

auto testData = std::unique_ptr<unsigned char[]>{ new unsigned char[16000] };

Oder mit c++14, eine bessere Form (VS2013 hat es bereits):

auto testData = std::make_unique<unsigned char[]>( 16000 );

Mit dem T[] Spezialisierung:

std::unique_ptr<unsigned char[]> testData(new unsigned char[16000]());

Beachten Sie, dass Sie in einer idealen Welt new nicht explizit verwenden müssten um einen unique_ptr zu instanziieren , wodurch eine potenzielle Ausnahmesicherheitsfalle vermieden wird. C++14 stellt Ihnen dazu den std::make_unique zur Verfügung Funktionsvorlage. Weitere Einzelheiten finden Sie in diesem ausgezeichneten GOTW. Die Syntax lautet:

auto testData = std::make_unique<unsigned char[]>(16000);

Linux
  1. Eine virtuelle Datei erstellen, die eigentlich ein Befehl ist?

  2. Erstellt `declare -a A` ein leeres Array `a` in Bash?

  3. Gibt es eine Möglichkeit, von UTF8 nach ISO-8859-1 zu konvertieren?

  4. Wie kann ich unter Linux ein zip / tgz erstellen, sodass Windows die richtigen Dateinamen hat?

  5. Richtige Methode zur Verwendung von OnFailure in systemd

Wie verwendet man inotify richtig?

Was ist der richtige Weg, um Tabulatoren in sed einzufügen?

Korrekte Methode zum Referenzieren von Dateien relativ zum Anwendungsstamm in Node.JS

Der richtige Weg, um Gruppen eines Benutzers in Linux mit C zu erhalten

Was ist der einfachste Weg, ein virtuelles Paket in Debian zu erstellen?

Erstellen Sie ein Array mit allen Netzwerkschnittstellen in Bash