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

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

Войти
Регистрация
Восстановить пароль
 
relationer
33 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 118
#1

Очищение аргументов функции main - C++

25.04.2014, 18:14. Просмотров 254. Ответов 6
Метки нет (Все метки)

Здравствуйте!

Как известно, в функцию main передаются два аргумента: int argc, char** argv
Стоит ли использовать delete на argv ради экономии памяти, после парсинга аргументов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 18:14     Очищение аргументов функции main
Посмотрите здесь:

Функции с переменным числом аргументов C++
Передача аргументов функции C++
C++ Передача аргументов в функции
C++ Передача аргументов функции
Передача аргументов функции C++
Передача аргументов командной строки функции main() C++
C++ Дан файл, переписать его в обратном направлении, передавая имена файлов в качестве аргументов функции main
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.04.2014, 18:55     Очищение аргументов функции main #2
Цитата Сообщение от relationer Посмотреть сообщение
Стоит ли использовать delete на argv ради экономии памяти, после парсинга аргументов?
Вы делали new, чтобы делать delete?
relationer
33 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 118
25.04.2014, 19:07  [ТС]     Очищение аргументов функции main #3
Нет, но, по-идее, значения этих аргументов закидываются в кучу приложения при инициализации процесса, и на них выделяется память. Или спецификации требуют, чтобы на каждый вызов delete приходился вызов new? Как освободить эту память, выделенную при старте процесса?
0x10
2456 / 1628 / 238
Регистрация: 24.11.2012
Сообщений: 4,003
25.04.2014, 19:17     Очищение аргументов функции main #4
Цитата Сообщение от relationer Посмотреть сообщение
Как освободить эту память, выделенную при старте процесса?
Вручную ничего делать не нужно.
Где размещаются аргументы ф-ии main - определяется реализацией компилятора и операционной системой. Для программиста это не важно.
DrOffset
6851 / 4062 / 927
Регистрация: 30.01.2014
Сообщений: 6,859
25.04.2014, 19:36     Очищение аргументов функции main #5
Цитата Сообщение от relationer Посмотреть сообщение
Или спецификации требуют, чтобы на каждый вызов delete приходился вызов new?
Есть требование освобождать память тем же способом, которым она была выделена (это предполагает парность операций выделения и освобождения). Хотя бы уже потому, что мы не знаем каким именно способом была выделена память для аргументов, мы не имеем права вызывать для нее delete. К тому же, эта память вполне может выделяться не в куче.
Avazart
7063 / 5240 / 262
Регистрация: 10.12.2010
Сообщений: 23,053
Записей в блоге: 17
25.04.2014, 19:41     Очищение аргументов функции main #6
Цитата Сообщение от relationer Посмотреть сообщение
аргументов закидываются в кучу приложения
Не в кучу, а в стек...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2014, 00:25     Очищение аргументов функции main
Еще ссылки по теме:

C++ Замена аргументов функции
C++ Назначение аргументов функции int main
Использование аргументов передаваемых в функцию main C++
C++ Проверка аргументов рекурсивной функции
Типы аргументов функции strstr C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.04.2014, 00:25     Очищение аргументов функции main #7
Цитата Сообщение от Avazart Посмотреть сообщение
Не в кучу, а в стек...
Судя по адресам, то в кучу. Но скорее всего так:
Цитата Сообщение от 0x10 Посмотреть сообщение
Где размещаются аргументы ф-ии main - определяется реализацией компилятора и операционной системой.
Yandex
Объявления
26.04.2014, 00:25     Очищение аргументов функции main
Ответ Создать тему
Опции темы

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