CString::FreeExtra

Этот метод освобождает любую дополнительную память, предварительно занятую строкой, но больше ненужную. Это должно уменьшить память используемую строковым объектом. Метод приводит буфер к точной длине, возвращенной GetLength.

void FreeExtra( );

Пример

Следующий пример печатает три строки, показанные ниже при Выводе.

#include <afx.h>

void PrintLengths (CString* str)

{

_tprintf ("Длина Распределения - %d, Строковая длина - %d\n ",

str. GetAllocLength (), str. GetLength ());

}

void main ()

{

// Создать CString с 1024 символами

CString str ('x', 1024);

PrintLengths (str);

/* Присвоение меньшей строки не будет освобождать память CString , поскольку это предполагает, что строка будет расти снова так или иначе.

*/

str = _T ("Хоккей является Лучшим! ");

PrintLengths (str);

// Этот запрос вынуждает CString освобождать дополнительное пространство

// эта память не нужна.

str. FreeExtra ();

PrintLengths (str);

}

Вывод

Длина распределения - 1024, Строковая длина - 1024

Длина распределения - 1024, Строковая длина - 24

Длина распределения - 64, Строковая длина - 24

---