Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: new int(80) и new int[80]
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
elusive
Здравствуйте!
Объясните пожалуйста суть конструкций.

int *a = new int(80); создает указатель на последовательность значений из 80 элементов

int *b = new int[80]; создает ссылку на массив из 80 элементов

а в чем разница? хоть так хоть так мы имеем 80 элементов нужного типа.
XVR
Цитата(elusive @ Apr 27 2011, 09:25) *
int *a = new int(80); создает указатель на последовательность значений из 80 элементов
Нет. Создает один char, который инициализирует числом 80
Цитата
int *b = new int[80]; создает ссылку на массив из 80 элементов
Да
sergeeff
Цитата(elusive @ Apr 27 2011, 08:25) *
Здравствуйте!
Объясните пожалуйста суть конструкций.

int *a = new int(80); создает указатель на последовательность значений из 80 элементов

int *b = new int[80]; создает ссылку на массив из 80 элементов

а в чем разница? хоть так хоть так мы имеем 80 элементов нужного типа.


Интересно. Вы хоть читаете ответы на вопросы, которые задаете на форуме? Я вам про это уже расстолковывал в посте:

http://electronix.ru/forum/index.php?showt...mp;#entry914361

Теперь вы снова про тоже самое. Чудно все это.
elusive
Цитата(sergeeff @ Apr 27 2011, 12:02) *
Интересно. Вы хоть читаете ответы на вопросы, которые задаете на форуме? Я вам про это уже расстолковывал в посте:

http://electronix.ru/forum/index.php?showt...mp;#entry914361

Теперь вы снова про тоже самое. Чудно все это.


конечно читал.
но я решил поднять этот вопрос отдельно и вот почему:
в книге Сергея Бобровского "Технологии C++ Builder" (стр.104) написано:

"Динамическое выделение памяти выполняет оператор new. Форма его записи такова:
new тип(число-элементов)
Данный оператор выделяет в оп.памяти пространство, в котором будут храниться заданное число элементов указанного типа. <...> Например:
int* a;
a = new int(100);
Переменную a можно использовать как указатель на последовательность значений из 100 элементов..."

Прочитав это и памятуя о вашем комментарии в той теме как раз и возник вопрос.
sergeeff
Цитата(elusive @ Apr 27 2011, 09:09) *
конечно читал.
но я решил поднять этот вопрос отдельно и вот почему:
в книге Сергея Бобровского "Технологии C++ Builder" (стр.104) написано:

"Динамическое выделение памяти выполняет оператор new. Форма его записи такова:
new тип(число-элементов)
Данный оператор выделяет в оп.памяти пространство, в котором будут храниться заданное число элементов указанного типа. <...> Например:
int* a;
a = new int(100);
Переменную a можно использовать как указатель на последовательность значений из 100 элементов..."

Прочитав это и памятуя о вашем комментарии в той теме как раз и возник вопрос.


Очень плохие книги вы читаете. Можете господину Бобровскому послать e-mail и сказать ему, что он не понимает смысла варажения

Код
a = new int(100);


А он таков. Создается новый объект типа int в куче путем вызова инициализирующего конструктора для переменной этого типа. Так как этот объект относится к типу POD (plain old data) http://www.informit.com/guides/content.asp...s&seqNum=32, то компилятор вызывает встроенный коструктор для данного типа переменной, инициализирует ее, и возвращает вам адрес этого объекта.

А вам советую в качестве настольной книги 2-х томник Брюса Эккеля ""Философия С++".
Idle
Цитата(elusive @ Apr 27 2011, 09:25) *
int *b = new int[80]; создает ссылку на массив из 80 элементов

точно ссылку? может указатель?
elusive
Цитата(Idle @ Apr 27 2011, 14:41) *
точно ссылку? может указатель?


Бобровский утверждает что ссылку
andrew_b
Цитата(elusive @ Apr 27 2011, 13:44) *
Бобровский утверждает что ссылку

Он не прав.
dxp
Цитата(elusive @ Apr 27 2011, 13:09) *
"Динамическое выделение памяти выполняет оператор new. Форма его записи такова:
new тип(число-элементов)
Данный оператор выделяет в оп.памяти пространство, в котором будут храниться заданное число элементов указанного типа. <...> Например:
int* a;
a = new int(100);
Переменную a можно использовать как указатель на последовательность значений из 100 элементов..."


Цитата(elusive @ Apr 27 2011, 16:44) *
Бобровский утверждает что ссылку

Скорее закройте эту книгу и никогда больше не ищите в ней ответов на вопросы. Такие грубые ошибки недопустимы даже для неофициальных источников, не то что издаваемых книг. Они там что - рецензирование совсем отменили? Ведь это же сразу обнаруживается.

Читайте классиков - Страуструпа, Липпмана, Элджера и других (что уже посоветовали).
sergeeff
А кто рецензировать то будет? Такие же как Бобровский? Вспоминаю как ко мне, студенту, приходили доценты и выспрашивали тонкости работы 8080, а на следующий день лекции студентам читали. Сами посидели бы месяцок-другой, не приходили бы. Вот и Бобровский такой же, слышал звон .... Беда, право.
Idle
мда, Бобровский не того sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.