powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Память будет освобождаться или нет?
13 сообщений из 63, страница 3 из 3
Память будет освобождаться или нет?
    #39277748
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeviLooperЯ понял, что это не по фэн-шую, что надо обвешиваться классами.
в сторону unique_ptr посмотри 19435532 он собственно именно для твоей задачи и создан, тут все по фэн-шую и накладных расходов минимум.
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39277749
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeviLooperА что в нем плохого?
побочные эффекты
DeviLooperНо такое решение имеет право на жизнь?
кто ж запретит стрелять себе в ногу
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39277755
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone,

Какой еще unique_ptr? Вы в своем уме? Он еще возьмет и применит это )))
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39277756
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в нормальных функциях вызывающий буфер под результат передает. Ну и его размер, чтобы в ногу не выстрелить. А функция возвращает реальный размер результата или "не влезло" или потребный размер.
А так конечно, классы, фигассы, вектора, стринги :)
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39277761
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyBarlone,

Какой еще unique_ptr? Вы в своем уме? Он еще возьмет и применит это )))
Почему нельзя std::unique_ptr<char[]> ? целиком тут 19435532
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39277773
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TА реально есть ли разница между delete *char и delete[] *char ?
если б это был массив объектов - понятно что надо деструктор каждому вызвать, но для char, int и т.п. этого не надо, а в итоге ведь наверняка что-то типа free(*void). Почему бы не узаконить взаимозаменяемость delete и delete[] для char?Гипотетически, разница может быть. Например, при выделении памяти под объект без виртуального деструктора и не являющийся массивом, можно не сохранять размер выделенного блока.
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39277798
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivя всю жизнь (! не шутка) борюсь с этими хреновыми строками !
теперь хоть есть стандартная, да и то - говно полное...напиши свою. В соседней ветке [!] для велосипеда с параметрами, я сделал свою строку, она же пошла как универсальная прослойка между значением "любого" типа параметра и текстовым представлением.
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39277807
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TПочему нельзя std::unique_ptr
Ну можно построить бассейн, но если человеку нужна ванна, то он ставит ванну.

Для работы со строками больше всего подходит std::string.
Все остальное - костыли.
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39277823
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbMasterZivя всю жизнь (! не шутка) борюсь с этими хреновыми строками !
теперь хоть есть стандартная, да и то - говно полное...напиши свою. В соседней ветке [!] для велосипеда с параметрами, я сделал свою строку, она же пошла как универсальная прослойка между значением "любого" типа параметра и текстовым представлением.

Да я уже...
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39279505
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyDeviLooper,

Назовите хоть одну причину, чтобы использовать тут С-строки а не std::string?
Только не говорите что вам эту функцию надо вызывать миллионы раз в секунду, поэтому каждый такт важен

Код: plaintext
1.
2.
3.
4.
std::string conv(const std::string& in)
{
    return in + ".out";
}



По важности:
1я - у тебя программа на Си, а не на С++
2я - у тебя всегда здесь будет выделение памяти, а это далеко не "каждый такт".
Передавая и используя буфер вызывающей ф-ции, хоть на стеке, будет действительно быстрее.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
char* conv(char*buf, const char* sIn)
{
    strcpy(buf, sIn);
    return strcat(buf, ".out");
}
char buf[FILENAME_MAX+5];
printf(conv(buf, "abcdef"));


3я - хоть и редко, но size matters, можно сравнить размер с -lstdc++ и без него

Итого: или писать на С++ и решение АМ, или писать на Си.
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39279648
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl1я - у тебя программа на Си, а не на С++
2я - у тебя всегда здесь будет выделение памяти, а это далеко не "каждый такт".
Ну так это изначальные условия.
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39279710
locked
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemargl2я - у тебя всегда здесь будет выделение памяти, а это далеко не "каждый такт".

Только если in.capacity() - in.size() < 4. Нормальные пацаны делают предварительно reserve() достаточный чтобы по возможности не вызывался realloc
...
Рейтинг: 0 / 0
Память будет освобождаться или нет?
    #39279785
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockedSiemargl2я - у тебя всегда здесь будет выделение памяти, а это далеко не "каждый такт".

Только если in.capacity() - in.size() < 4. Нормальные пацаны делают предварительно reserve() достаточный чтобы по возможности не вызывался reallocТам новый объект создается и возвращается. Нормальные пацаны учат матчасть.
...
Рейтинг: 0 / 0
13 сообщений из 63, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Память будет освобождаться или нет?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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