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

Массивы - C++

Восстановить пароль Регистрация
 
kebal
9 / 9 / 0
Регистрация: 02.11.2012
Сообщений: 153
26.11.2013, 20:12     Массивы #1
Что означает вот такой код?
C++
1
int *temp = new int[];
Мы получается можем в любой момент задавать любые значения его ячейкам и он будет выделять для этого память?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
26.11.2013, 20:18     Массивы #2
kebal, да, new - это функция для выделения памяти под определенное количество значений определенного типа.

Добавлено через 1 минуту
C++
1
int *a = new int [3];
Выделит память в 12 байт под 3 значения типа int
kebal
9 / 9 / 0
Регистрация: 02.11.2012
Сообщений: 153
26.11.2013, 20:19  [ТС]     Массивы #3
Цитата Сообщение от metaluga145 Посмотреть сообщение
kebal, да, new - это функция для выделения памяти под определенное количество значений определенного типа.
Но я как раз не указал этого определенного количества, поэтому мне и интересно что оно делает.
Дело в том, что
C++
1
2
3
int *tmp = new int[];
delete[] tmp;
tmp = new int[10];
и
C++
1
2
3
int *tmp = new int[10];
delete[] tmp;
tmp = new int[10]
приводит к различным результатам
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
26.11.2013, 20:25     Массивы #4
kebal,
C++
1
int *tmp = new int[];
После вызова new, tmp == NULL. Вызов оператор delete[] для значения NULL является ошибкой.
kebal
9 / 9 / 0
Регистрация: 02.11.2012
Сообщений: 153
26.11.2013, 20:28  [ТС]     Массивы #5
tmp не равняется Null, вы ошибаетесь. Я проверил, оно имеет значение. И указывает на мусор.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
26.11.2013, 20:43     Массивы #6
kebal, согласен, ошибся. очень странно, что позволяется вызов оператора без параметров, ибо параметров по умолчанию у него нету и перегруженного оператора без параметров тоже нету. не знаю в чем проблема.
Yandex
Объявления
26.11.2013, 20:43     Массивы
Ответ Создать тему
Опции темы

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