Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Prolific
0 / 0 / 2
Регистрация: 29.11.2015
Сообщений: 44
#1

Очищать ли память?

31.10.2016, 14:30. Просмотров 742. Ответов 3
Метки нет (Все метки)

Всем привет. Начал изучать С++ и возник такой вопрос. Есть стандартный класс string, например я создал строку:
C++
1
string a = "abcd";
Потом я захотел ее полностью переписать, но заполнить посимвольно. Правильно ли будет работать такая штука:
C++
1
a = "\0";
Или я просто определю границу, а "bcd" останется где-то висеть мусором?
Грубо говоря вопрос такой: как очистить строку класса string?
Заранее спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2016, 14:30
Ответы с готовыми решениями:

Нужно ли очищать память, выделенную под вектор?
Доброго времени суток. При работе с динамическими массивами всегда чистил...

Класс list, когда нужно очищать память?
не могу разобраться когда нужно очищать память "delete input_" и почему каждый...

Как правильно очищать вектор указателей
Привет Всем! Есть вопрос по вектору указателей, как правильно очищать память...

Зачем очищать поток cout?
Всем привет! Не могу понять, зачем очищать поток cout после вывода? Все,...

Как сделать функцию, которая будет очищать экран и возвращать пользователя к главному меню?
Как сделать функцию, которая будет очищать экран и возвращать пользователя в...

3
Nishen
458 / 281 / 154
Регистрация: 26.02.2015
Сообщений: 1,329
Завершенные тесты: 2
31.10.2016, 14:34 #2
Лучший ответ Сообщение было отмечено Prolific как решение

Решение

http://www.cplusplus.com/reference/string/string/clear/
1
Байт
Эксперт C
17941 / 11931 / 2479
Регистрация: 24.12.2010
Сообщений: 24,038
31.10.2016, 14:36 #3
Цитата Сообщение от Prolific Посмотреть сообщение
Грубо говоря вопрос такой: как очистить строку класса string?
Как только вы выйдете из функции, все очистится.
1
Prolific
0 / 0 / 2
Регистрация: 29.11.2015
Сообщений: 44
31.10.2016, 14:41  [ТС] #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class binary
{
private:
    string value;
public:
    binary()
    { }
    binary(string str) : value(str)
    { }
    binary(unsigned int num)//преобразование в двоичный код
    { 
        value.clear();
        while (num)
        {
            value.insert(0, num % 2 ? "1" : "0");//вставляем строку "1" || "0" в начало строки value
            num /= 2;
        }
    }
    operator int()//преобразование в десятичный код
    {
        int num = 0, exp = 0;
        for (int i = value.length() - 1; i >= 0; --i, ++exp)
        {
            if(value[i] == 49) num += pow(2, exp);
        }
        return num;
    }
    void show()
    {
        cout << value << endl;
    }
};
Вот в таком контексте использую, нормально?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2016, 14:41

Стоит ли очищать в деструкторе std::map , std::vecotor?
У меня ещё один нубский вопрос :) Вот если в классе объявлены мапы и вектора,...

Статическая память,Динамическая память.
a) Статическая память. Двумерный массив. Дан массив целых чисел. В массиве есть...

Realloc выделяет память для массива int и не выделяет память для массива double
Скажите пожалуйста, почему вот этот код работает: #include &lt;iostream&gt;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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