GNU/Linux >> Linux Esercitazione >  >> Linux

Modo corretto per creare unique_ptr che contiene un array allocato

Usa la versione dell'array :

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

O con c++14, una forma migliore ( VS2013 ce l'ha già ):

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

Utilizzando il T[] specializzazione:

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

Nota che, in un mondo ideale, non dovresti usare esplicitamente new per istanziare un unique_ptr , evitando una potenziale trappola per la sicurezza delle eccezioni. A tal fine, C++14 ti fornisce il std::make_unique modello di funzione. Vedi questo eccellente GOTW per maggiori dettagli. La sintassi è:

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

Linux
  1. Qual è il modo corretto di usare inotify?

  2. Modo corretto per fare riferimento ai file relativi alla radice dell'applicazione in Node.JS

  3. Modo corretto per ottenere gruppi di un utente in Linux usando C

  4. Come posso creare un zip / tgz in Linux in modo tale che Windows abbia nomi di file corretti?

  5. Modo corretto di utilizzare OnFailure in systemd

Qual è il modo corretto di inserire la scheda in sed?

C'è un modo per convertire da UTF8 a ISO-8859-1?

Qual è il modo più semplice per creare un pacchetto virtuale in debian?

Crea un array con tutte le interfacce di rete in bash

C'è un modo corretto per cancellare i log?

Modo corretto di interpretare il carico del sistema su un processore a 4 core e 8 thread