Сообщение Re[2]: Как правильно освободить память от массива символов, от 28.04.2015 8:41
Изменено 28.04.2015 8:43 kaa.python
Здравствуйте, PM, Вы писали:
PM>Здравствуйте, newpy, Вы писали:
N>>Как правильно освободить память от массива символов, полученных из функции?
N>>Ниже приведен пример. Пытался и через delete str.
PM>Всё правильно — если выделяешь new[], значит удаляешь delete[]
PM>Но вообще, понятнее будет выделять и освобождать память на одной стороне:
PM>
PM>Если программа не учебная, следующим этапом должен быть переход от ручного управления памятью к использованию std::string
N>>Естественно проверяю объем занимаемой памяти в диспетчере. До генерации занимает 440КБ. После генерации объем растет в зависимости от количества символов в тексте ( что логично ).
PM>Диспетчер, это диспетчер задач Windows? Насколько я помню, там занимаемая приложением память это какое-то другое значение. И менеджер памяти используемый в CRT может не сразу возвращать память операционной системе.
Программа учебная. Действительно, пример помог. Спасибо.
PM>Здравствуйте, newpy, Вы писали:
N>>Как правильно освободить память от массива символов, полученных из функции?
N>>Ниже приведен пример. Пытался и через delete str.
PM>Всё правильно — если выделяешь new[], значит удаляешь delete[]
PM>Но вообще, понятнее будет выделять и освобождать память на одной стороне:
PM>
PM>void genstr(char* str, unsigned int len) {
PM> // заполняем str
PM>}
PM>int main() {
PM> unsigned int X, lines_count = 1, ix = 0;
PM> cout << "Введите длину текста, который необходимо сгенерировать: ";
PM> cin >> X;
PM> char * str = new char[X];
PM> genstr(str, X);
PM> // Здесь мы что то делаем с этой "строкой"
PM> // Здесь мы пытаемся освободить память
PM> delete [] str;
PM> system("PAUSE");
PM> return 0;
PM>}
PM>
PM>Если программа не учебная, следующим этапом должен быть переход от ручного управления памятью к использованию std::string
N>>Естественно проверяю объем занимаемой памяти в диспетчере. До генерации занимает 440КБ. После генерации объем растет в зависимости от количества символов в тексте ( что логично ).
PM>Диспетчер, это диспетчер задач Windows? Насколько я помню, там занимаемая приложением память это какое-то другое значение. И менеджер памяти используемый в CRT может не сразу возвращать память операционной системе.
Программа учебная. Действительно, пример помог. Спасибо.
Re[2]: Как правильно освободить память от массива символов,
Здравствуйте, PM, Вы писали:
PM>Диспетчер, это диспетчер задач Windows? Насколько я помню, там занимаемая приложением память это какое-то другое значение. И менеджер памяти используемый в CRT может не сразу возвращать память операционной системе.
Программа учебная. Действительно, пример помог. Спасибо.
PM>Диспетчер, это диспетчер задач Windows? Насколько я помню, там занимаемая приложением память это какое-то другое значение. И менеджер памяти используемый в CRT может не сразу возвращать память операционной системе.
Программа учебная. Действительно, пример помог. Спасибо.