Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2013, 22:59   #1
ViktorKozlov
Пользователь
 
Регистрация: 24.02.2013
Сообщений: 10
По умолчанию static массив C++

Доброго времени суток
Код:
void fnc()
{
	static int *arr=new arr[10000];
}

int main()
{
	return 0;
}
Как корректно сделать delete для такого массива, если учесть, что функция вызывается много раз и постоянно создавать его при каждом вызове довольно затратно? И вообще, корректно ли делать динамический массив static?
ViktorKozlov вне форума Ответить с цитированием
Старый 22.05.2013, 23:55   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2ViktorKozlov
Цитата:
функция вызывается много раз и постоянно создавать его при каждом вызове довольно затратно
память под массив выделится один раз, при первом вызове функции fnc

Цитата:
корректно ли делать динамический массив static
смысла особого нет
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 23.05.2013, 14:53   #3
ViktorKozlov
Пользователь
 
Регистрация: 24.02.2013
Сообщений: 10
По умолчанию

Т.е. корректно сделать для такого массива delete[] не получится ? Ведь если делать это в конце функции, то будет плохо, а кроме функции он нигде больше не виден. Можно, наверное, сделать глобальный указатель int** на этот arr и освобождать его в конце main, но в таком случае, наверное, рациональнее сам arr делать глобальным
ViktorKozlov вне форума Ответить с цитированием
Старый 24.05.2013, 12:21   #4
Airhand
Пользователь
 
Аватар для Airhand
 
Регистрация: 23.08.2011
Сообщений: 55
По умолчанию

Не заморачивайтесь с динамикой. Массив можно сделать std::vector, а ещё лучше boost::vector (на счёт него не уверен, что верно написал). В первом случае он будет переменной длины и статическим (т.е. специально удалять не нужно, хотя будет юзать динамическую память). Во-втором, кроме указанного, будет освобождать динамическую память, если он не нужен.
"Пока бабка не смоет косметику, русский мужик не перекрестится" (C) Кто-то
Airhand вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Элемент STATIC Dimarik Win Api 9 20.06.2011 20:42
static Gen_r_questions PHP 7 05.04.2011 15:12
Использование static Syltan Общие вопросы по Java, Java SE, Kotlin 3 07.06.2010 20:59
Static члены assasin Общие вопросы C/C++ 2 21.08.2009 10:54
По-поводу Static volnixx PHP 3 11.03.2009 12:04