Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Модератор: Лучше плодить темы, чем поднимать. А вот в этом случае память течет или нет? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Т.е. есть некая функция-конвертер, которая внутри создает новую строку, потом возвращает на нее указатель. Вызов этой функции я делаю только внутри вызовов других (ну как в printf), т.е. значение указателя ничему не присваивается. Память будет освобождаться или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 20:52 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Потечет. Каждому new должен быть в конце delete, иначе память занята до конца работы приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 20:59 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Лучше используй string тогда проблем с памятью не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 21:00 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Отвечаем. DeviLooper А вот в этом случае память течет или нет? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. В этом случае память течёт. DeviLooperТ.е. есть некая функция-конвертер, которая внутри создает новую строку, потом возвращает на нее указатель. Вызов этой функции я делаю только внутри вызовов других (ну как в printf), т.е. значение указателя ничему не присваивается. Память будет освобождаться или нет? Память НЕ будет освобождаться . Ты должен освобождать её самостоятельно, или доверить её выделение и освобождение специальным классам. Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 21:02 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Dima Tиспользуй string string, конечно, вещь удобная, но уж слишком раздувает бинарник. Vector в этом плане выглядит привлекательнее. MasterZiv, вот только я не понял а вектор в этом случае когда будет память освобождать? Тоже при завершении программы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 21:49 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperstring, конечно, вещь удобная, но уж слишком раздувает бинарник. С чего бы этому мелкому макросу бинарник раздувать?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 22:07 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
MasterZivПамять НЕ будет освобождаться . Ты должен освобождать её самостоятельно, это совершенно нормальное соглашение - память, занятую результатом, явно освобождает вызывающий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 22:08 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovС чего бы этому мелкому макросу бинарник раздувать?.. Ну если использовать <iostream>, то не заметно, только тут изначально 500кб бинарник. Я <stdio.h> юзаю, так что <string> раздувает бинарник со 130кб, до 500 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 22:27 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperизначально 500кб бинарник. 400 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 22:28 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperDima Tиспользуй string string, конечно, вещь удобная, но уж слишком раздувает бинарник. Vector в этом плане выглядит привлекательнее. MasterZiv, вот только я не понял а вектор в этом случае когда будет память освобождать? Тоже при завершении программы? конкретно тут при выходе из printf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 22:36 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
ИзопропилMasterZivПамять НЕ будет освобождаться . Ты должен освобождать её самостоятельно, это совершенно нормальное соглашение - память, занятую результатом, явно освобождает вызывающий 0) мне кажется, что это абсолютно НЕнормальная ситуация, когда вызывающему надо еще о чем-то думать после вызова. 1) в его коде он ничего НЕ освобождал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 22:41 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
MasterZivмне кажется, что это абсолютно НЕнормальная ситуация, когда вызывающему надо еще о чем-то думать после вызова. а кто кроме вызывающего знает, как долго ему нужен результат вызова? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 22:48 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Согласно спеке printf возвращает количество символов или негативное целое (статус ошибки). Но если-бы он пробрасывал в качестве retval свой первый аргумент назад то можно было бы попробовать в 1 строчку. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 22:53 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
MasterZivИзопропилпропущено... это совершенно нормальное соглашение - память, занятую результатом, явно освобождает вызывающий 0) мне кажется, что это абсолютно НЕнормальная ситуация, когда вызывающему надо еще о чем-то думать после вызова. 1) в его коде он ничего НЕ освобождал. да как бы нормально вызывающему коду как раз думать и о выделении и о удалении :-) был правда фокус с локальной переменной, но он потоконебезопасен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 23:52 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Я че-то подумал и сделал вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. По идее нормально же все будет работать? Вложенных вызовов не планирую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 00:31 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooper, с точки зрения полезного действия всё что ты делаешь это просто форматирование имени файла. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 01:11 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
mayton, не... На самом деле функция другая, там происходит некое преобразование входной строки и выдается результат. Это я для простоты такой пример привел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 01:16 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperЯ че-то подумал и сделал вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. По идее нормально же все будет работать? Вложенных вызовов не планирую. Вы уверены, что данный участок кода будет работать так, как вы вероятно полагаете? Мне кажется вы немного намудрили с ctrl+x, ctrl+v ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 02:20 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooper, для чего вы используете квалификатор static? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 02:26 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooper, Назовите хоть одну причину, чтобы использовать тут С-строки а не std::string? Только не говорите что вам эту функцию надо вызывать миллионы раз в секунду, поэтому каждый такт важен Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 02:30 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
SashaMercuryдля чего вы используете квалификатор static? Для многократного вызова этой функции внутри вызова других. static нужен для сохранения указателя, чтобы при следующем вызове этой функции память, выделенная под предыдущий результат очищалась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 02:31 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, я уже отвечал - функция на самом деле не такая простая и преобразований входной строки там гораздо больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 02:33 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooper , тоесть мы щас играемся в игрушки. А настоящую функцию ты зажал и кормишь нас какими-то нелепыми синтетическими постановками. И как-ты полученный опыт перенесёшь на свою волшебную функцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 02:45 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
mayton, ну суть вопроса-то была в очистке памяти при подобном вызове, а не в оптимизации моей функции :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 03:14 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperЯ че-то подумал и сделал вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. По идее нормально же все будет работать? Вложенных вызовов не планирую. будет работать, тут только не нарвись на такое Код: plaintext 1. Ошибок не будет, просто выведется второе дважды. проверку добавь и скобки Код: plaintext 1. А лучше на realloc() переделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 07:10 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperЯ че-то подумал и сделал вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. По идее нормально же все будет работать? Вложенных вызовов не планирую. kealon(Ruslan)был правда фокус с локальной переменной, но он потоконебезопасен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 08:58 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooper, ох как часто этот велосипед придумывают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 08:59 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)DeviLooper, ох как часто этот велосипед придумывают Да ещё с граблями совмещённый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 09:03 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 09:16 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
ИзопропилMasterZivмне кажется, что это абсолютно НЕнормальная ситуация, когда вызывающему надо еще о чем-то думать после вызова. а кто кроме вызывающего знает, как долго ему нужен результат вызова? Да и вызывающему это знать не нужно. Ему нужно взять значение и использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 09:55 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
maytonСогласно спеке printf возвращает количество символов или негативное целое (статус ошибки). Но если-бы он пробрасывал в качестве retval свой первый аргумент назад то можно было бы попробовать в 1 строчку. Код: plaintext 1. Вот я тоже про это хотел написать. Но к сожалению C/C++ не Arch language. Далеко не такой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 09:57 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperЯ че-то подумал и сделал вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. По идее нормально же все будет работать? Вложенных вызовов не планирую. Нет, ненормально. В общем, это идиотский код и подход. Даже с автоматическим (auto) массивом фиксированной длины лучше , чем так. А как надо -- я уже показал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 09:59 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLoopermayton, ну суть вопроса-то была в очистке памяти при подобном вызове, а не в оптимизации моей функции :) Мы ответили ? Ответили. Зачем -- не понятно, если ты всё равно слушать не хочешь, а делаешь код только хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 10:02 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperЯ че-то подумал и сделал вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. По идее нормально же все будет работать? Вложенных вызовов не планирую. Не делайте так, плз. НИКОГДА. Однажды кто-нибудь напишет Код: plaintext 1. 2. 3. и получит USE AFTER DELETE... Счастливой отладки ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 10:13 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Как вариант, если очень не хочется STL использовать, то можно свой класс-обертку написать. Там немного кода будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 10:28 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
MasterZivДа и вызывающему это знать не нужно. Ему нужно взять значение и использовать. no comments ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 10:30 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Недавно некто постил ссылку на полную ненависти статью. Вобщем там было нечто вроде: ....История C/С++ это история создания строкового типа и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 10:30 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperЯ <stdio.h> юзаю, так что <string> раздувает бинарник со 130кб, до 500 Затестил, MS VC 2015 статическая линковка. Код отсюда 19432985 103424 байта, такой код 110592 байт Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ХЗ стоит ли из-за 7 кб кода создавать столько граблей. PS Раздутые бинарники хорошо сдувает UPX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 10:53 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
ИзопропилMasterZivДа и вызывающему это знать не нужно. Ему нужно взять значение и использовать. no comments Ну так современный С++ идёт (несётся?) в эту сторону. Нам говорят: используйте value-семантику и "умные обёртки" для сырых указателей. Современный С++ код может вообще не содержать new и delete ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 11:13 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
А так? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 11:28 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
BagaBagaНу так современный С++ идёт катится :) значит будет "старый" и "новый" C++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 11:32 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
BarloneА так? так 103936 байта, т.е. +512 байт всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 11:41 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
BagaBaga, молодец, я вот понимаю, что это хрень, но почему это хрень - уже забыл, поскольку делал так последний раз лет 25 назад, когда был студентом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 11:49 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
maytonНедавно некто постил ссылку на полную ненависти статью. Вобщем там было нечто вроде: ....История C/С++ это история создания строкового типа и т.п. а че не так что ли? я всю жизнь (! не шутка) борюсь с этими хреновыми строками ! теперь хоть есть стандартная, да и то - говно полное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 11:51 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
BarloneА так? Код: plaintext 1. Есть подозрение, что std::unique_ptr<char> будет удалять через delete, а не delete[] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:01 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Гость123BarloneА так? Код: plaintext 1. Есть подозрение, что std::unique_ptr<char> будет удалять через delete, а не delete[] В такjм виде да, но кто мешает использовать custom delete для unique_ptr? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:14 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Упс, они допилили unique_ptr для массивов Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. http://en.cppreference.com/w/cpp/memory/unique_ptr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:21 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Гость123Есть подозрение, что std::unique_ptr<char> будет удалять через delete, а не delete[] О... Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:24 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
А реально есть ли разница между delete *char и delete[] *char ? если б это был массив объектов - понятно что надо деструктор каждому вызвать, но для char, int и т.п. этого не надо, а в итоге ведь наверняка что-то типа free(*void). Почему бы не узаконить взаимозаменяемость delete и delete[] для char? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:35 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Dima Tбудет работать, тут только не нарвись на такое Код: plaintext 1. Ну под "вложенными" вызовами я в том числе это и имел в виду - не будет такого. Dima Tпроверку добавь и скобки Код: plaintext 1. Скобки да, забыл. А проверка разве нужна? delete же сам проверяет на NULL. MasterZivDeviLoopermayton, ну суть вопроса-то была в очистке памяти при подобном вызове, а не в оптимизации моей функции :)Мы ответили ? Ответили. Зачем -- не понятно, если ты всё равно слушать не хочешь, а делаешь код только хуже. Да я имел в виду, что реальное тело той функции роли не играет. Меня интересовала только передача результата наружу. Почему не слушаю? Слушаю, пробую. Просто мне показался мой вариант со статиком неплохим. Остальное все как-то громоздко... А что в нем плохого? Что куча теребится? Ну у меня не так много вызовов. Я понял, что это не по фэн-шую, что надо обвешиваться классами. Но такое решение имеет право на жизнь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:47 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperЯ понял, что это не по фэн-шую, что надо обвешиваться классами. в сторону unique_ptr посмотри 19435532 он собственно именно для твоей задачи и создан, тут все по фэн-шую и накладных расходов минимум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:54 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
DeviLooperА что в нем плохого? побочные эффекты DeviLooperНо такое решение имеет право на жизнь? кто ж запретит стрелять себе в ногу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:55 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Barlone, Какой еще unique_ptr? Вы в своем уме? Он еще возьмет и применит это ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:59 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
А в нормальных функциях вызывающий буфер под результат передает. Ну и его размер, чтобы в ногу не выстрелить. А функция возвращает реальный размер результата или "не влезло" или потребный размер. А так конечно, классы, фигассы, вектора, стринги :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:59 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyBarlone, Какой еще unique_ptr? Вы в своем уме? Он еще возьмет и применит это ))) Почему нельзя std::unique_ptr<char[]> ? целиком тут 19435532 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:01 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Dima TА реально есть ли разница между delete *char и delete[] *char ? если б это был массив объектов - понятно что надо деструктор каждому вызвать, но для char, int и т.п. этого не надо, а в итоге ведь наверняка что-то типа free(*void). Почему бы не узаконить взаимозаменяемость delete и delete[] для char?Гипотетически, разница может быть. Например, при выделении памяти под объект без виртуального деструктора и не являющийся массивом, можно не сохранять размер выделенного блока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:08 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
MasterZivя всю жизнь (! не шутка) борюсь с этими хреновыми строками ! теперь хоть есть стандартная, да и то - говно полное...напиши свою. В соседней ветке [!] для велосипеда с параметрами, я сделал свою строку, она же пошла как универсальная прослойка между значением "любого" типа параметра и текстовым представлением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:26 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Dima TПочему нельзя std::unique_ptr Ну можно построить бассейн, но если человеку нужна ванна, то он ставит ванну. Для работы со строками больше всего подходит std::string. Все остальное - костыли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:34 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
CEMbMasterZivя всю жизнь (! не шутка) борюсь с этими хреновыми строками ! теперь хоть есть стандартная, да и то - говно полное...напиши свою. В соседней ветке [!] для велосипеда с параметрами, я сделал свою строку, она же пошла как универсальная прослойка между значением "любого" типа параметра и текстовым представлением. Да я уже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:41 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyDeviLooper, Назовите хоть одну причину, чтобы использовать тут С-строки а не std::string? Только не говорите что вам эту функцию надо вызывать миллионы раз в секунду, поэтому каждый такт важен Код: plaintext 1. 2. 3. 4. По важности: 1я - у тебя программа на Си, а не на С++ 2я - у тебя всегда здесь будет выделение памяти, а это далеко не "каждый такт". Передавая и используя буфер вызывающей ф-ции, хоть на стеке, будет действительно быстрее. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 3я - хоть и редко, но size matters, можно сравнить размер с -lstdc++ и без него Итого: или писать на С++ и решение АМ, или писать на Си. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 11:49 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Siemargl1я - у тебя программа на Си, а не на С++ 2я - у тебя всегда здесь будет выделение памяти, а это далеко не "каждый такт". Ну так это изначальные условия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 13:38 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
Siemargl2я - у тебя всегда здесь будет выделение памяти, а это далеко не "каждый такт". Только если in.capacity() - in.size() < 4. Нормальные пацаны делают предварительно reserve() достаточный чтобы по возможности не вызывался realloc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 14:34 |
|
||
|
Память будет освобождаться или нет?
|
|||
|---|---|---|---|
|
#18+
lockedSiemargl2я - у тебя всегда здесь будет выделение памяти, а это далеко не "каждый такт". Только если in.capacity() - in.size() < 4. Нормальные пацаны делают предварительно reserve() достаточный чтобы по возможности не вызывался reallocТам новый объект создается и возвращается. Нормальные пацаны учат матчасть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 16:00 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2018467]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 211ms |

| 0 / 0 |
