Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разница в коде между *ptr и mass[], различие между указателем и неопределенн 
V
    Опции темы
ller
Дата 3.9.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: 2
Всего: 4



Есть некоторый массив, как его лучше определеить
к примеру как
Код

int *ptr;
ptr = 0;
// некий код 
if(!ptr)
{
      ptr = new int[10];
}

//-----------------
delete[] ptr;


или так
Код

int mass[];

mass = 0 //Это не работает. Как узнать, была ли выделена память под массив или нет?

mass = new int[10];

//----------------------------------

delete [] mass;

PM MAIL   Вверх
andrew_121
Дата 3.9.2009, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



первый вариант.
а лучше std::vector<int> arr;


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
ller
Дата 3.9.2009, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: 2
Всего: 4



У меня там структура, но есть ли смысл использовать вектор, если выделяется память только раз и на все время жизни объекта?
Это я считаю в данном случае чрезмерно.
PM MAIL   Вверх
586
Дата 3.9.2009, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 8
Всего: 146



Цитата(ller @  3.9.2009,  19:33 Найти цитируемый пост)
Есть некоторый массив, как его лучше определеить

Вариант №1. Так обычно и пишут. Если указатель равен нулю, то память не выделена.
Вариант №2 вообще не компилируется. http://codepad.org/6r4r8IBD

Это сообщение отредактировал(а) 586 - 3.9.2009, 19:06
PM   Вверх
ller
Дата 3.9.2009, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: 2
Всего: 4



В общем разобрался немного. В этом случае только указатель. Неопределенный массив может быть только лишь при инициализации...
Код

int mass[]={1,2,3,4};

PM MAIL   Вверх
andrew_121
Дата 3.9.2009, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(ller @  3.9.2009,  18:49 Найти цитируемый пост)
есть ли смысл использовать вектор, если выделяется память только раз и на все время жизни объекта?

и?

Цитата(ller @  3.9.2009,  18:49 Найти цитируемый пост)
Это я считаю в данном случае чрезмерно. 

странно smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
zim22
Дата 3.9.2009, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(ller @  3.9.2009,  19:29 Найти цитируемый пост)
Неопределенный массив может быть только лишь при инициализации...

для компилятора он очень даже определённый.


--------------------
PM MAIL   Вверх
ller
Дата 3.9.2009, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: 2
Всего: 4



andrew_121, возможно smile
PM MAIL   Вверх
ller
Дата 3.9.2009, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: 2
Всего: 4



zim22, При явной инициализации, да. smile
Я про запись говорил smile
PM MAIL   Вверх
Pori
Дата 4.9.2009, 10:23 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 10.9.2007

Репутация: нет
Всего: 1



А чем не устраивает int a[10] ? =)

Или map из STL?
PM MAIL   Вверх
andrew_121
Дата 4.9.2009, 11:52 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(Pori @  4.9.2009,  10:23 Найти цитируемый пост)
Или map из STL? 

а мап тут для чего?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
bsa
Дата 6.9.2009, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(ller @ 3.9.2009,  18:49)
У меня там структура, но есть ли смысл использовать вектор, если выделяется память только раз и на все время жизни объекта?
Это я считаю в данном случае чрезмерно.

Это нормально как раз. Вектор тебе гарантирует освобождение памяти.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0716 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.