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

Не будет ли утечки памяти? - C++

Восстановить пароль Регистрация
 
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
30.06.2014, 18:23     Не будет ли утечки памяти? #1
Привет. Мне нужно очистить строку (массив символов)
C++
1
char str[256];
делаю так
C++
1
str[0] = '\0';
не будет ли это утечкой?

P. S. думаю нет, это же не динамическая память, или нет?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
30.06.2014, 18:27     Не будет ли утечки памяти? #2
Все правильно
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
30.06.2014, 19:22     Не будет ли утечки памяти? #3
Цитата Сообщение от Voivoid Посмотреть сообщение
Все правильно
?
Цитата Сообщение от xSCJx Посмотреть сообщение
Мне нужно очистить строку (массив символов)
C
1
memset(str, '\0', sizeof(str));
Цитата Сообщение от xSCJx Посмотреть сообщение
не будет ли это утечкой?
P. S. думаю нет, это же не динамическая память, или нет?
Правильно думаете, утечки не будет, но все же лучше memset()
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
30.06.2014, 19:30     Не будет ли утечки памяти? #4
Цитата Сообщение от gromo Посмотреть сообщение
?
И? Что сказать-то хотел? Что memset лучше? Нет, не лучше. С трудом представляю себе сценарии, когда без него было бы не обойтись. Я еще понимаю предложил бы std::string использовать
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
30.06.2014, 19:34     Не будет ли утечки памяти? #5
Цитата Сообщение от Voivoid Посмотреть сообщение
Что memset лучше? Нет, не лучше. С трудом представляю себе сценарии, когда без него было бы не обойтись.
А как же мусор, который останется в 255 ячейках? мало ли что

Добавлено через 1 минуту
Цитата Сообщение от Voivoid Посмотреть сообщение
Что сказать-то хотел?
Там после знака вопроса стоит цитата ТС, что ему нужно очистить массив символов, т.е. я так понимаю реально очистить
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.06.2014, 19:36     Не будет ли утечки памяти? #6
Цитата Сообщение от gromo Посмотреть сообщение
А как же мусор, который останется в 255 ячейках? мало ли что
компилятор может выкинуть вызов memset
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
30.06.2014, 19:44     Не будет ли утечки памяти? #7
Цитата Сообщение от gromo Посмотреть сообщение
Там после знака вопроса стоит цитата ТС, что ему нужно очистить массив символов,
ему нужно очистить строку
Цитата Сообщение от xSCJx Посмотреть сообщение
Мне нужно очистить строку
а строка это не массив символов, а массив символов с завершающим 0 в конце
так что 0 это и есть конец строки, дальше зачищать бесполезно,и даже вредно
расходование процессорного времени на бесполезное присвоение
представь str на пару мегабайт
Цитата Сообщение от gromo Посмотреть сообщение
А как же мусор, который останется в 255 ячейках?
да и пес с ним
Цитата Сообщение от gromo Посмотреть сообщение
мало ли что
а чтобы не было "мало ли что" нужно правильно спроектировать программу, а если коряво спроектировано то и memset не спасет

Добавлено через 1 минуту
Цитата Сообщение от Jupiter Посмотреть сообщение
компилятор может выкинуть вызов memset
а может не выкинуть
а время то идет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2014, 19:46     Не будет ли утечки памяти?
Еще ссылки по теме:

C++ утечки памяти - просто жесть
Я создаю утечки памяти ! C++
Определение утечки памяти C++

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

Или воспользуйтесь поиском по форуму:
gromo
30.06.2014, 19:46     Не будет ли утечки памяти?
  #8

Не по теме:

ValeryS,
в пух и прах

Yandex
Объявления
30.06.2014, 19:46     Не будет ли утечки памяти?
Ответ Создать тему
Опции темы

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