powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по очистке памяти new/delete
7 сообщений из 7, страница 1 из 1
Вопрос по очистке памяти new/delete
    #38206237
XMaSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каким образом можно очистить память в функции?
char* cpy(char* &str1)
{
char *word=new char[strlen(str1)];
for(int i=0;i<strlen(str1);i++)
word[i]=str1[i];
return(word);
}

void main()
{
char *str=new char[100000];
char *str2=new char[100000];
str="dadsadsadasd";
str2=cpy(str);
delete[] str;
delete[] str2;
}

те при каждом вызове cpy() выделяется память под word. а ее очистить, если идет return(word)?
...
Рейтинг: 0 / 0
Вопрос по очистке памяти new/delete
    #38206241
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XMaSsdelete[] str2;
Память, выделенную под word ты как раз освобождаешь, а вот выделение str2 у тебя не
освобождается (и не используется). Можешь его вообще убрать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по очистке памяти new/delete
    #38206258
XMaSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Спасибо, а если еще там есть выделение памяти под str3
char* cpy(char* &str1)
{
char *word=new char[strlen(str1)];
char *str3=new char[strlen(str1)+1];
for(int i=0;i<strlen(str1);i++)
{
if (i>0)
{str3[i-1]=str1[i]}
word[i]=str1[i];
}
int i=strlen(str1);
word[i]='\0';
str1[i-1]='\0';
str1=str3
return(word);
}
...
Рейтинг: 0 / 0
Вопрос по очистке памяти new/delete
    #38206261
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XMaSs,

Тогда ты теряешь начальный str1
...
Рейтинг: 0 / 0
Вопрос по очистке памяти new/delete
    #38206262
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты не в состоянии контролировать поток выполнения своей программы, то используй STL
классы с автоматическим подсчётом ссылок.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по очистке памяти new/delete
    #38206263
XMaSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

теряю данные... да... но в этом и суть
но суть в том что мне нужен был другой strtok(...)
я его написал, но при каждом запуске он выделяет память, а где ее очистить я не пойму
пример strtokа не привел, там очень закрученный код, но суть такая, что изменяется начальная строка и достается какая-то информация
...
Рейтинг: 0 / 0
Вопрос по очистке памяти new/delete
    #38206420
XMaSs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итого методом научного втыкивания)):
в данном случае надо заменить
str1=str2 на
sprintf(str1,"%s",str2);
тогда str2 нам не нужен и тогда можно
delete[] str2

Но всем спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по очистке памяти new/delete
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]