Utilisez la version tableau :
auto testData = std::unique_ptr<unsigned char[]>{ new unsigned char[16000] };
Ou avec c++14, une meilleure forme ( VS2013 l'a déjà ):
auto testData = std::make_unique<unsigned char[]>( 16000 );
Utilisation du T[] spécialisation :
std::unique_ptr<unsigned char[]> testData(new unsigned char[16000]());
Notez que, dans un monde idéal, vous n'auriez pas à utiliser explicitement new pour instancier un unique_ptr , en évitant un écueil de sécurité d'exception potentiel. Pour cela, C++14 vous fournit le std::make_unique modèle de fonction. Voir cet excellent GOTW pour plus de détails. La syntaxe est :
auto testData = std::make_unique<unsigned char[]>(16000);