Время от времени я должен звонить new[]
для встроенных типов (обычно char
). Результатом является массив с неинициализированными значениями, и я должен использовать memset()
или std::fill()
инициализировать элементы.
Как я делаю new[]
значение по умолчанию - инициализирует элементы?
int * p = new int [10] ()
должно работать.
Однако, как указывает Майкл , было бы лучше использовать std :: vector
.
Почему бы вам просто не использовать std::vector? Он сделает это за вас автоматически.
std::vector<int> x(100); // 100 ints with value 0 std::vector<int> y(100,5); // 100 ints with value 5
Также важно отметить, что использование векторов лучше, так как данные будут надежно уничтожены. Если у вас есть оператор new[]
, и впоследствии возникнет исключение, то выделенные данные будут утекать. Если вы используете std::vector, то будет вызван деструктор вектора, в результате чего данные будут правильно деаллоцированы.