|
0 / 0 / 0
Регистрация: 08.08.2007
Сообщений: 184
|
||||||
текст на С++ из двух строчек31.01.2008, 05:45. Показов 3576. Ответов 22
Метки нет (Все метки)
Ниже текст на С++ из двух строчек.
Есть ли здесь какая-то ошибка или нет. Если есть, то где и к чему она может привести ?
0
|
||||||
| 31.01.2008, 05:45 | |
|
Ответы с готовыми решениями:
22
Сравнение двух строчек Создать структуру из двух строчек и IndexOutOfRangeException |
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
||||||
| 31.01.2008, 15:16 | ||||||
|
Ошибка однозначно есть и может привести к неправильному освобождению занятой памяти, хотя конечно это зависит от того как релизованы функции распределения памяти в том или ином компиляторе.
По-моему, правильнее было бы зделать так:
0
|
||||||
|
0 / 0 / 0
Регистрация: 08.08.2007
Сообщений: 184
|
|
| 01.02.2008, 05:07 [ТС] | |
|
Спасибо, Владимир.
Кто еще хочет высказаться? :-)
0
|
|
|
0 / 0 / 0
Регистрация: 01.02.2008
Сообщений: 61
|
||||||
| 01.02.2008, 06:56 | ||||||
|
Все верно написано, НО
А что, если память не выделится???? Что тогда будет освобождать delete???? Всегда нужно ОБРАБАТЫВАТЬ возможные ошибки хотябы так
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
|
||||||
| 01.02.2008, 07:29 | ||||||
|
Привет !
>Ниже текст на С++ из двух строчек. >Есть ли здесь какая-то ошибка или нет. Если есть, то где и к чему >она может привести ? >int *p=new int[10]; >delete p; На самом деле здесь может быть куча ошибок, кода который идёт ранее никто не видел и не знает, что вытворяли некие программеры там. если же сделать так :
то я пожалуй соглашусь с boombastik, хотя это и не ошибка, а скорее просто утечка памяти, причём несущественная по современным масштабам. До чего дожили - на форумах стали задачки давать ..., С Уважением Andir!
0
|
||||||
|
1 / 1 / 5
Регистрация: 30.04.2007
Сообщений: 225
|
|
| 01.02.2008, 17:01 | |
|
> Всегда нужно ОБРАБАТЫВАТЬ возможные ошибки
вызывать оператор delete для нулевого указателя по стандарту допустимо.
0
|
|
|
0 / 0 / 0
Регистрация: 01.02.2008
Сообщений: 61
|
|
| 02.02.2008, 01:41 | |
|
Допустимо, но ОШИБКУ ОБРАБОТАТЬ надо
надо сам факт ее существования ОПРЕДЕЛИТЬ На это и был акцент потому и IF стоит
0
|
|
|
SCORPION
|
|||||||||||
| 03.02.2008, 04:48 | |||||||||||
|
Вообще то ,желательно написать так -
если так как вы говорили
остальные 9 остануться не высвобожленные в памяти , хотя это все будет работать ....... |
|||||||||||
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
||||||
| 03.02.2008, 11:56 | ||||||
|
По поводу обработки ошибок, да и удаления массивов...
Парни!!! Вам что слабо Страуструпа взять!? Вот цитата из его книги, уверен всем присутствующим известной: '...Что случится, когда операция new не сможет больше найти свободной памяти для размещения? Поскольку даже виртуальная память небесконечна, такое время от времени происходит. Так, запрос вида: char* p = new char [100000000]; обычно не проходит нормально. Когда операция new не может выполнить запрос, она вызывает функцию, которая была задана как параметр при обращении к функции set_new_handler() из <new.h>. Например, в следующей программе:
operator new failed: out of store // операция new не прошла: нет памяти' Счастья вам! Владимир.
0
|
||||||
|
Ghost
|
|
| 14.02.2008, 15:19 | |
|
А что, Smart-указатели уже законодательно запретили???
|
|
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 14.02.2008, 15:32 | |
|
Как так!? Кто такое сказал?
Но в данном случае речь шла о стандартных механизмах рыботы с памятью в C++, а не дополнительных наворотах. В этом случае зачем выбирать С++, можно остановиться на Java или C#, например... Кроме того, ни для кого не секрет, что Smart-pointer'ы это дополнительные операции, то есть если нужна скорость, то лучше бы от них отказаться. Хотя кому в наше время нужна скорость!? Когда Билли уже публично признался, что так как Hardware постоянно совершенствуется и продолжит это в тех же темпах, то нам наплевать на производительнось, мы будем больше внимания уделять пользовательскому интерфейсу... С уважением, Владимир
0
|
|
|
Ghost
|
|
| 14.02.2008, 16:40 | |
|
гы-гы! Ели нужна скорость - то вспоминаем про ассемблер
)
|
|
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 14.02.2008, 16:49 | |
|
Конечно! Используется вставочка asm, но тогда тема и содержание самого вопроса становятся бессмысленными...
С уважением, Владимир
0
|
|
|
Ghost
|
|
| 14.02.2008, 23:58 | |
|
Да, и тогда (если нужна скорость) можно подумать и о своем манагере
памати, да и ОСь свою тоже можно наваять )))))У меня, кстати, уже есть СВОЯ мультизадачная ОСь, 100 процессов под ней на DX/2-80 просто порхали. |
|
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 17.02.2008, 11:22 | |
|
Круто!
Я еще не дорос до своих ОС... ![]() И что выделение памяти в твоей ОС быстрее чем в других? Хотя наверно да, ведь под Windows этим занимается диспетчер памяти: выделяет, приписывает к определенному процессу, работает с файлом подкачки,... все это конечно оптимизировано, но все равно жрет машинное время... С уважением, Владимир. P.S. Мы уже в полнейший оффтопик залезли... хорошо у этого форума нет модератора
0
|
|
|
Snork
|
|
| 17.02.2008, 18:50 | |
|
Доброго времени суток!
И охота, вам, господа, оси свои писать? Я свою энергию направляю в мирное русло К тому ж, Билли прав, ось не столько кол-во процессов и их скорость, сколько ГУИ. Впрочем, не мое это и дело. Я лишь хотел добавить к топику, что очень удобны исключения. Вы-то это и так знаете, но мало ли кто этот топик поднимет?Итак, у меня штук 10 стековых, нуллом проинициализированных, указателей. Они представляют собой буферы для функции-транзакции. Если все 10 заполнятся как надо, то по их членам-аналогам данные грохаются, с последующим присваиванием в них этих самых буферов. (Коряво, конечно, в смысле фрагментации, но мне это не сильно надо). После каждой ошибки (транзакция должна быть атомарна) осуществляется выход с кодом ошибки. Страшно подумать, что надо проверять на NULL каждый буфер после new - там каждый буфер по ходу дела поднимается и грохается раза 3, в среднем! (это 30 одинаковых проверок каждого буфера и 10 удалений, если хоть раз память не выделилась - кошмар!). Но catch(...) спасает дело - здесь я единожды проверяю все буфера на NULL и грохаю, если надо. Мне нравится ))
|
|
|
Ghost
|
|
| 18.02.2008, 22:42 | |
|
1. Позволю себе не согласиться с высказыванием, что ОСь - это ГУЙ.
В случае, если мы рассматриваем ОСь для секретутки - это ТОЛЬКО ГУЙ и чуть-чуть надежности, а если это ось (к примеру) для телефонной станции? Вопросы? ![]() 2. По поводу catch(...) - классная штука, не спорю. Вот только в BC++ 3.1 его нет ((
|
|
|
Snork
|
|
| 19.02.2008, 08:38 | |
|
Вопросы есть. 'Секретутки' (а к ним я причисляю очень многие категории людей: дизайнеры, верстальщики, операторы набора и т.п.) двигают рынок. Очень может быть, что успех оси на телефонной станции будет зависеть от того, как эту осю встретят 'секретутки'. (На этом позвольте вместо 'секретутка' говорить привычное 'пользователь'.) Так вот, если эта куча байт, которая нужна на телефонной станции, служит для единственной узкоспециальной задачи - говорить об оси рано, это просто BIOS какой-то! Тут и контроллера хватит. А если же предполагается под эту ось писать свои приложения, которые потом заменяются со временем и т.п. - 10:1, что выберут Unix или WinNT, в крайнем случае, отрежут у них тот самый ГУЙ. Просто потому, что эти оси, благодаря ГУЙям, очень раскрутились. А раскрутили их пользователи.
Всего наилучшего, Снорк. |
|
|
0 / 0 / 0
Регистрация: 15.03.2007
Сообщений: 40
|
|
| 20.02.2008, 00:53 | |
|
The first of all, the standard behavior of new (in VC and as I remember in BCPP Builder) is to return NULL on error in new. You can REDEFINE that standard behavior by set up of new handler with _set_new_handler function.
0
|
|
|
Snork
|
|
| 20.02.2008, 13:57 | |
|
In details, please. BCPPB is out of my interests, but if VC++ supports these features, I'd like to know how to use it. (Is it ANSI standard?)
Snork. |
|
| 20.02.2008, 13:57 | |
|
Помогаю со студенческими работами здесь
20
Некорректно работает батник из двух строчек Сравнение первых строчек двух мемо в С++ Сравнение двух похожих небольших строчек
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|