C++ int* ptr = new int[0]

Недавно я изучал С++ и мне попался один интересный вопрос, про что будет при выделении памяти таким образом new любой_тип_данных[0]. Как я понял из найденного материала в интернете:

  1. Это абсолютно законно в С++ и будет выделена память для массива с 0 элементов.
  2. С таким указателем мало что можно сделать, поскольку это приведёт к неопределённом поведению.
  3. Такой указатель впоследствии нужно будет очистить с помощью оператора delete[].

Но мне остаётся не ясным то, где в реальных проектах или хотя бы учебных проектах данная операция может применятся. На этот вопрос я не нашёл какой-либо устраивающей меня информации. Кроме одного применения, когда программа вычисляет объём выделенной памяти, и если этот объём будет равен 0, не имеет смысла добавлять исключение на такой случай.


Ответы (0 шт):