for (int i=0; i<6; i++) {
str[i]='';
}
|
правильно так:
но строка по-прежнему будет занимать память. Этим ты только укажешь ей нулевую длину (конец нультерминированной строки находится в байте с кодом ноль).
Для непосредственного высвобождения памяти, строку надо создавать операторм new (или функциями malloc/realloc в Си-стиле)
Тогда удалить:
.
Напомню, что char[6] рассчитан максимум на 5 байт текста (с индексами от 0 до 4) и один (с индексом 5) "закрывающий" строку ноль. Незакрытая строка может быть неправильно обработана функциями и это выйдет боком в произвольном месте (например, ты затрёшь рядом расположенную инфу).