Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
#1

Что значит new () - C++

24.12.2011, 15:21. Просмотров 1434. Ответов 6
Метки нет (Все метки)

Случайно ошибся и написал
C++
1
double *F1 = new double (count);
вместо
C++
1
double *F1 = new double [count];
компилятор не выдал ошибки,но приложение не работало. что значит new double()?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.12.2011, 15:28     Что значит new () #2
Почитайте про разные операторы new http://www.cplusplus.com/reference/s...perator%20new/
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
24.12.2011, 15:35  [ТС]     Что значит new () #3
т.о. я выделял байты, а не определял длину массива
zss
Модератор
Эксперт С++
 Аватар для zss
6110 / 5713 / 1849
Регистрация: 18.12.2011
Сообщений: 14,590
Завершенные тесты: 1
24.12.2011, 15:37     Что значит new () #4
В первом случае похоже выделится count байт,
а во втором count*sizeof(double) байт.
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
24.12.2011, 15:47     Что значит new () #5
В первом случае похоже выделится count байт,
это неверно.

double *F1 = new double (count); - создает в памяти один объект типа double у которого значение будет равно count.

аналгния с пользовательскими типами:
MyClass* myClass = new MyClass(someArgument); - динамическое создание объекта типа MyClass (вызовится конструктор которому отдастся на вход someArgument).
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.12.2011, 15:57     Что значит new () #6
Цитата Сообщение от zss2 Посмотреть сообщение
В первом случае похоже выделится count байт,
Нет, выделится все равно 8 байт.

Добавлено через 2 минуты
Цитата Сообщение от DU Посмотреть сообщение
создает в памяти один объект типа double у которого значение будет равно count.
Совершенно верно.

Добавлено через 4 минуты
Кстати, в этом случаи если ошибка, то new не бросит исключения в bad_alloc
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2011, 16:05     Что значит new ()
Еще ссылки по теме:

C++ что значит ?
Что значит ->? C++
что значит !feof(f) C++
Что значит указатель **? C++
C++ Что значит запись C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
24.12.2011, 16:05     Что значит new () #7
Кстати, в этом случаи если ошибка, то new не бросит исключения в bad_alloc
это почему? для вызова некидающего исключения оператора, это нужно специально указывать:
http://www.cplusplus.com/reference/std/new/nothrow/
Yandex
Объявления
24.12.2011, 16:05     Что значит new ()
Ответ Создать тему
Опции темы

Текущее время: 05:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru