What is wrong with: boost::scoped_ptr<byte> buff[10]; for(int i=0; i<10; i++) { int size = 2*i + 100; buff[i] = boost::scoped_ptr<byte>(new byte[size]); } ...