Здесь создается указатель 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