Как мне выделить память с помощью new в C ?

#c #new-operator #dynamic-allocation

#c #new-operator #динамическое выделение

Вопрос:

У меня есть следующее статическое объявление памяти:

 void* array[5000];
  

Как я могу выделить ту же память, используя operator new в C ?

Комментарии:

1. Что именно вы хотите выделить?

2. @kalyan: Я не понимаю, почему этот вопрос не подходит для SO. Многие новички немного теряются, когда решение влечет за собой двойной указатель, и я не уверен, что Google будет настолько полезен новичку.

3. Как это не достойный вопрос SO? Это как превратить статическое выделение в динамическое (для многих не очевидно, что вам нужно добавить дополнительное * в объявление в дополнение к тому, как new его нужно использовать с указателем).

4. Как это локализовано? Здесь есть множество вопросов, связанных с C / C .

5. @модераторы: пожалуйста, воздержитесь от таких грубых изменений ядерной истории, о которых свидетельствуют оставшиеся обломки. было сделано здесь.

Ответ №1:

 void **array = new void*[5000];
  

Комментарии:

1. Да, пустот было достаточно, чтобы сбить меня с толку, потому что мой первоначальный ответ (до вашего редактирования) действительно скомпилирован! Затем я понял, что это неправильно, и удалил его.

2. Не говоря уже о том, что я отредактировал его неправильно.. Я удалил звездочку вместо добавления. 🙂

Ответ №2:

вверху есть массив указателей, здесь это просто массив целых чисел.

int array = new int [5000];

Комментарии:

1. мне нужен массив void *, а не массив int.

2. Мало того, это не синтаксис C .