13.05.2012, 21:48
15.05.2012, 02:53
(11.05.2012 14:44)GrayFace Wrote: [ -> ]там ты переприсваиваешь указатели, можно запутаться. а еще при таких изменениях переменных иногда лезут ошибки при освобождении памяти, я уже когда-то писал.Потеря корректности? Проблемы с освобождением?
(11.05.2012 14:44)GrayFace Wrote: [ -> ]Почему же? Спокойно можно рисовать в таймере и в OnPaint.можно. но зачем? потеря двойной буферизации (а значит и жутко медленная отрисовка), стирание при следующем вызове отрисовки, еще что-нибудь вылезет. уже лучше вызвать перерисовку формы через invalidate.
(11.05.2012 14:44)GrayFace Wrote: [ -> ]Еще можно вызывать Repaint - он отрисовывает сразу, а не когда дойдет до сообщения.не знаю что это, описание какое-то мутное.
(11.05.2012 18:14)NIKr0m@nceR Wrote: [ -> ]чем сишные функции выделения памяти лучше и почему их нельзя юзать в плюсах я так и не узнаю.емнип, ты и не спрашивал.
конечно же, их можно (и нужно) использовать в плюсах. а лучше они наличием realloc
(12.05.2012 20:42)packa Wrote: [ -> ]Поделитесь ссылкой на нормальный компилятор под Си.msvc. емнип, он поддерживает С. но размер большой, конечно.
(12.05.2012 22:53)packa Wrote: [ -> ]красным то что бы хотел убратьне пойму чем оно тебе мешает
(13.05.2012 18:49)NIKr0m@nceR Wrote: [ -> ]а еще, мне не нравятся эти сини с сяутамитак стандартный ввод-вывод намного гибченаверное потому. что я кучу времени писал на с и привык к принтфосканфам.
а насчёт ошибки - мне бы побольше глянуть а то так не понятно нифига

15.05.2012, 23:22
бтв, а как работает реаллок? в том смысле что действительно ли это сильно эффективнее чем тупо создать новый кусок и удалить старый?
у меня тут вопрос возник: какой механизм работы исключений типа деления на 0? просто интересно а гуглить влом, если кто знает - просветите.
про так и не узнаю это я просто неудачно выразился и не заметил, извиняюсь
у меня тут вопрос возник: какой механизм работы исключений типа деления на 0? просто интересно а гуглить влом, если кто знает - просветите.
16.05.2012, 00:09
>>бтв, а как работает реаллок? в том смысле что действительно ли это сильно эффективнее чем тупо создать новый кусок и удалить старый?
Да, вроде эффективнее, хотя я не тестировал на скорость. В первом случае всё происходит средствами ОСи, а во втором ты своими ручками, то есть кодом. Зря что ли создавались АПИшные функции типа HeapRealloc()?
Да, вроде эффективнее, хотя я не тестировал на скорость. В первом случае всё происходит средствами ОСи, а во втором ты своими ручками, то есть кодом. Зря что ли создавались АПИшные функции типа HeapRealloc()?
16.05.2012, 02:29
(15.05.2012 23:22)NIKr0m@nceR Wrote: [ -> ]бтв, а как работает реаллок? в том смысле что действительно ли это сильно эффективнее чем тупо создать новый кусок и удалить старый?вроде бы должно быть эффективнее:
msdn Wrote:realloc returns a void pointer to the reallocated (and possibly moved) memory block.но в то же время:
msdn Wrote:realloc calls malloc in order to use the C++ _set_new_mode function to set the new handler mode.
(15.05.2012 23:22)NIKr0m@nceR Wrote: [ -> ]какой механизм работы исключений типа деления на 0?всмысле? как и другие исключения. вылазит ошибка деления на ноль - выбрасывается исключение
16.05.2012, 06:29
а где оно выбрасывается? на каком уровне? просто в моей мингв нет виндовской обработки исключений и её обработка реализована страшненьким макросом с асмовставками, вот я и заинтересовался.
16.05.2012, 15:05
так деление на ноль это прерывание. в обработчике прерывания и выбрасывается.
16.05.2012, 23:42
а, протупил. точно. спс
17.05.2012, 14:32
Эх, ну какой дурак придумал, что в сях неинициализированные указатели равны мусору, а не NULL?
Полдня сегодня из-за этого потратил - в одной из if-веток конструктора забыл проинициализировать поле-указатель...
Полдня сегодня из-за этого потратил - в одной из if-веток конструктора забыл проинициализировать поле-указатель...
17.05.2012, 15:14
ага, бывает. на всякий случай стараюсь сразу проинициализировать всё.
17.05.2012, 15:26
(17.05.2012 14:32)Efrit Wrote: [ -> ]Эх, ну какой дурак придумал, что в сях неинициализированные указатели равны мусору, а не NULL?
Полдня сегодня из-за этого потратил - в одной из if-веток конструктора забыл проинициализировать поле-указатель...
Ну с таким же успехом можно отгрести багов и от любой другой переменной. Тут уж либо обнулять все (как в паскале при создании объекта в куче) либо ничего не трогать. В сях скрость работы на одном из первых мест - ничего "лишнего" компилятор пытается не вставлять.
17.05.2012, 16:02
AVS Wrote:Ну с таким же успехом можно отгрести багов и от любой другой переменной.Не совсем так. Ведь "другие переменные" нельзя разыменовывать - только указатели...
AVS Wrote:В сях скрость работы на одном из первых мест - ничего "лишнего" компилятор пытается не вставлять.Сделали бы опцию в компиляторе, и всего делов... Может, это есть уже где?
17.05.2012, 16:30
cyclone?
17.05.2012, 16:36
(17.05.2012 16:02)Efrit Wrote: [ -> ]AVS Wrote:Ну с таким же успехом можно отгрести багов и от любой другой переменной.Не совсем так. Ведь "другие переменные" нельзя разыменовывать - только указатели...
И чо? Да с другими переменными не будет сразу AV (или что еще хуже порча чего нить полезного) , но например какой нить case пойдет не по той ветке - тоже мало приятного; да мало ли, что еще может быть.
20.05.2012, 01:46
указатель - тоже переменная. и имеет полное право быть равным мусору.