Есть ли причина, по которой динамическое выделение памяти с использованием ключевого слова «new» иногда создает указателC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Есть ли причина, по которой динамическое выделение памяти с использованием ключевого слова «new» иногда создает указател

Сообщение Anonymous »

Здесь создается указатель newNum, указывающий на вновь выделенную память для целого числа:

Код: Выделить всё

#include 

int main() {
int* newNum = new int;
delete newNum;
}
Следуя той же логике, я подумал, что здесь newNums будет указателем, указывающим на вновь выделенную память для массива из трех целых чисел:

Код: Выделить всё

#include 

int main() {
int* newNums = new int[3];
delete[] newNums;
}
Однако newNums имеет тип не int*, а тип int, поскольку следующий код выдает ошибку: значение типа «int *» не может быть присвоено объекту типа «int» :

Код: Выделить всё

#include 

int main() {
int num = 123;
int* pointer = #

int* newNums = new int[3];
newNums[0] = pointer;

delete[] newNums;
}
Мне интересно, почему в первом случае создается указатель, а во втором случае указатель не создается?
Изменить: является ли newNums указателем?

Подробнее здесь: https://stackoverflow.com/questions/798 ... yword-some
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»