slinkinone
@slinkinone
Агент "Везде успеть"

Как правильно очистить участок памяти?

Доброго времени суток!
Хотел уточнить несколько моментов.
Допустим мы имеем указатель на строку (char* str). Необходимо её обрезать (оставить первые n/2 символов). Я так понимаю нужно найти начальную позицию(begin), конечную (end) и вызвать memmove. Затем почистить память str. В таком случае, мы получим лишние затраты по памяти в определённый момент выполнения программы.
Можно также влепить \0 на позиции end, но тогда получится что ошмётки строки будут безвозвратно потеряны.

Вопрос:
1. Какой метод по "обрезанию" строки наиболее практичен?
2. Есть-ли в моих суждениях ошибки?
3. Возможно ли провернуть фокус с освобождением только последней части строки? delete (str + pos) или нечто в этом роде?
  • Вопрос задан
  • 535 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Стоп-стоп-стоп. Откуда взялось delete? Мы про C или C++?

В любом случае, delete можно давать на вход только то, что вернула когда-то new. Если вы скормите delete лажу вроде указателя на середину строки, будет неопределенное поведение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы