Вопрос о массиве указателей - PullRequest
2 голосов
/ 20 декабря 2010

Создание массива можно сделать обоими этими способами?Но не все, массив является началом адреса массива и выделяет достаточно байтов для типа.Итак, мой вопрос: в чем разница, используя указатель на массив байтов или просто первый вариант?

int numbers[10];

int* num = new int[10];
or
int* num = new int(10);

Ответы [ 2 ]

4 голосов
/ 20 декабря 2010

int array[10]; имеет два разных поведения. Используемый внутри функции, он выделит 10 неинициализированных целых в стеке. Вне функции он выделит 10 инициализированных нулем целых в памяти BSS.

new int[10]; выделяет десять неинициализированных целых в куче.

new int(10); выделяет одно целое в куче со значением 10.

4 голосов
/ 20 декабря 2010

Ваша вторая версия объявляет указатель на целое число, инициализированное 10. Это не массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...