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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
24.12.2011, 15:21     Что значит new () #1
Случайно ошибся и написал
C++
1
double *F1 = new double (count);
вместо
C++
1
double *F1 = new double [count];
компилятор не выдал ошибки,но приложение не работало. что значит new double()?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2011, 15:21     Что значит new ()
Посмотрите здесь:

C++ что значит /=
Что значит? C++
Sleep(8000) - что значит? На что можно заменить в борланд с++? C++
C++ Что значит Handle hf? Что в эту функцию нужно передавать
Что значит string s; C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 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
5952 / 5557 / 1787
Регистрация: 18.12.2011
Сообщений: 14,202
Завершенные тесты: 1
24.12.2011, 15:37     Что значит new () #4
В первом случае похоже выделится count байт,
а во втором count*sizeof(double) байт.
DU
1477 / 1053 / 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++
3582 / 1362 / 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++
Что значит указатель **? C++

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

Или воспользуйтесь поиском по форуму:
DU
1477 / 1053 / 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 ()
Ответ Создать тему
Опции темы

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