[c++]Можно ли в оконном приложении Windows выделять память new?

Olenenok

Можно ли в оконном приложении Windows выделять память с помощью new?

Elina74

Можно. А что, не получается?

wizard42

а как по твоему выделяется память под перья (что бы рисовать) что бы рисовать в окне? . .

bastii

через new?

rosali

Какое-то у вас странное отношение к new, как будто это C++-ный примитив, с таинственным смыслом. Самая обычная функция, в итоге вызыват malloc, а тот в свою очередь опирается на какие-то системные вызовы, для Windows это видимо LocalAlloc, или что там есть... Ну и всё.

bastii

про перья я подумал на GDI объекты, к ним malloc не имеет отношения

Olenenok

Можно. А что, не получается?
Не знаю, что-то Access violation at 0xC0..05. Никак не могу понять, вот и мечусь туда-сюда.

psm-home

Покажи код. Или там у тебя его мегабайты?

Olenenok

Покажи код. Или там у тебя его мегабайты?
Код получился стрёмный. Куча глобальных переменных, мешанина из MFC-Win32. Но его не очень много.

okunek

Помню, тоже была привычка на вылетающую прогу пинять на компилятор, что тот сцука не то делает, от чего моя суперправильная прога не работает

kokoc88

Не знаю, что-то Access violation at 0xC0..05. Никак не могу понять, вот и мечусь туда-сюда.
Ты там использовал-таки свой аццкий контейнер? Если да, то причина вполне может быть в нём.

Olenenok

Не, я щас вектора юзаю...

rosali

Access violation at 0xC0..05
А что так трудно встать в отладчике и посмотреть какая строчка обращается по нулевому указателю?

bleyman

У меня один раз new был замечен на выделении уже выделенной памяти.
Через пять часов вырезания из проги кусков был таки обнаружен код вида
for (int i = 0; i < elementCount; i++)
{
arr[elementCount].Ptr = 0;
}
причём написан он был в самом начале проганья, но ничем себя не проявлял. Мог бы и дальше не проявлять, или вдруг перестать проявляться в процессе вырезания кусков, так что мне ещё повезло.
За что и не люблю плюсы, собственно.

a10063

За что и не люблю плюсы, собственно.
собственно, причем тут плюсы?

bleyman

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

a10063

При том, что для защиты от классической Шредингеровско-Боровской ошибки необходимо прикладывать разнообразные усилия, которые, к тому же не относятся к языку, и потому не дают полной защиты.
а язык и не обещал тебе защиту от твоих же ошибок
зато он предоставил тебе средства, чтобы ты мог обернуть указатели (или еще что) и сделать себе защиту по душе
всякие навязанные защиты только замедляют программу

Olenenok

Я тоже не люблю плюсы. У меня на делфи раза в 2-3 быстрее получается писать.

kokoc88

У меня на делфи раза в 2-3 быстрее получается писать
Это не проблемы с++.

bleyman

> а язык и не обещал тебе защиту от твоих же ошибок
Ну да, а вот шарп обещал, потому я его и выбираю =)
Оставить комментарий
Имя или ник:
Комментарий: