Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Должен ли я высвободить память аргументов командной строки?

#cpp #c


Редко я работаю с аргументами командной строки из программы на C/С++. Подскажите,
должен ли я высвобождать массив char *argv[] delete[]'ом, который пришел в качестве
параметра в функцию main или этим займется система?

int main(int argc, char *argv[]) {...}


P.S. мне бы хотелось узнать точно, как делать правильно. 

Вообще мысли такие - раз не я отводил память, то и не мне ее освобождать. (Вольная
интерпретация концепции, когда отведение и высвобождение должно производиться на одном
уровне абстракции в коде)
    


Ответы

Ответ 1



Нет, высвобождать не надо. Действует простое правило: кто выделил - тот и высвобождает. В данном же случае main() получает указатель на участок памяти, выделенный до того.

Ответ 2



Нет, вы ничего не должны высвобождать.

Комментариев нет:

Отправить комментарий