170 похожих чатов

Https://Pastebin.Com/8BXzn0Tq data в конструкторе и деструкторе это должен быть один

и тот же указатель?

31 ответов

27 просмотров

А что это у тебя за порно в коде? blob = (float *) operator new [] ( imageSize.cols * imageSize.rows * imageSize.channels() * sizeof(float) ); Это кто вам так учил?

Ffff-Ffff Автор вопроса
Ilya Zviagin
А что это у тебя за порно в коде? blob = (float ...

Сырой кусок памяти который считает нейронка после препроцессинга

Ffff-Ffff Автор вопроса
Ilya Zviagin
А что это у тебя за порно в коде? blob = (float ...

Можно просто new, просто я хотел обратить внимание с помощью operator new что это тупо кусок памяти

Ffff Ffff
А что плохого?

Зачем operator new явно вызывать?

Ffff-Ffff Автор вопроса
Ilya Zviagin
Зачем operator new явно вызывать?

Просто что бы выделить память

Ffff-Ffff Автор вопроса
Ilya Zviagin
Зачем operator new явно вызывать?

Это бэд практис? Я могу не знать

Ffff Ffff
Просто что бы выделить память

new float[imageSize.cols * imageSize.rows * imageSize.channels()]?

Ffff-Ffff Автор вопроса
Ffff Ffff
Изначально было так

А почему перестало быть так?)

Ffff-Ffff Автор вопроса
Ffff Ffff
Просто что бы выделить память

Что бы просто выделить, надо array или vector, и всё

Ffff Ffff
Что бы бросилось в глаза

Что ж, цель достигнута: бросилось)

Ffff-Ffff Автор вопроса
Ffff Ffff
Нейронка принимает float *

Да ты шо! Ужас какой...

Ffff-Ffff Автор вопроса
Sergey Anisimov
.data()?

а какие плюсы использовать std::vector вместо простого выделения памяти и удаления в деструкторе? кусок этот всегда фиксированный

Ffff Ffff
а какие плюсы использовать std::vector вместо прос...

> и удаления в деструкторе например. Повышаете RAII-гранулярность, что благоприятно. В частности, не требуется следить за исключениями в конструкторе Вашего типа. Если говорить о стандартобиблиотечном контейнере - он еще и набор инструментов по работе над содержимым предоставляет.

Ffff Ffff
а почему не требуется?

Сконструированные (под)объекты гарантированно разрушаются. Будь, скажем, вектор самостоятельным полем, освобождение захваченного ресурса (выделенной памяти) было бы делегировано ему и произошло бы автоматически, даже при броске из Вашего конструктора. Edit: В случае же с "сырым" new за освобождение отвечает Ваш конструктор.

Anatoly Shirokov
Деструктор

Конструктор. Речь о бросках из него. Edit: Условный T ( ): raw_ptr{new float} { throw 42; } против T ( ): u_ptr{new float} { throw 42; }

Ffff-Ffff Автор вопроса
Sergey Anisimov
Сконструированные (под)объекты гарантированно разр...

имеете ввиду явный вызов деструктора из конструктора при выбросе исключения?

Ffff Ffff
имеете ввиду явный вызов деструктора из конструкто...

Так в подавляющем большинстве случаев нельзя: разрушите объект дважды. Смотрите пример выше: в первом случае инициализируется float* raw_ptr, во втором - std::unique_ptr<float> u_ptr. В первом случае память потечет, во втором - нет.

Anatoly Shirokov
ok

Помимо этого, в vector уже реализован Аллокатор, что оптимизирует работу с динамической памятью.

Stepan Zorin
Помимо этого, в vector уже реализован Аллокатор, ч...

с этим я не спорил, да и вообще не спорил, что надо предпочитать умные указатели сырым

Ffff Ffff
имеете ввиду явный вызов деструктора из конструкто...

просто в случае исключения в конструкторе о всех сырых ресурсах надо позаботиться самостоятельно: struct holder { char* ptr; holder() try : ptr(new char) { throw 42; } catch(...) { delete ptr; } holder(const holder&) = delete; holder& operator=(const holder&) = delete; ~holder() { delete ptr; } }; int main() { try { holder h; } catch(...) { } } а вот если этот код переписать на std::vector, этого ужаса в конструкторе можно избежать

Ffff Ffff
а почему не требуется?

Потому что RAII работает

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта