Здравствуйте, уважаемые эксперты. Благодарю за советы по созанию динамических массивов. Обязательно опробую шаблон vector. Возникает другой вопрос. А зачем тогда нужна это динамическая память? Я использовал операторы new/delete для создания массивов переменной длины. В книжке написано, что куча помогает избавиться от глобальных переменных, но зачем создавать переменные в динамической памяти, если можно просто передать в функцию указатель на существующую переменную. Мороки меньше да и утечка памяти не грозит. Может большие объемы данных стоит там размещать или большие объекты? Посоветуйте, когда стоит пользоваться динамической памятью. В каких случаях это необходимо или желательно, а когда лучше воздержаться, а когда вообще не имеет смысла. Может поделитесь опытом, как не наделать ошибок при этом. Надеюсь, что вы поможете мне разобраться в
этой сложной, но важной теме.
Здравствуйте, Александр! Я стараюсь использовать динамическую память тогда, когда, например, размерность массива или матрицы зарание неизвестна. Т.е. пользователь может сам задавать размер. Однажды я писал программу, которая занималась решением систем линейных уравнений. Пользователь мог производить вычисления систем с 300 (!) переменными (можно было вводить и больше, только зачем :-)). Память выделялась в зависимости от размерности системы. Если б я сразу зарезервировал столько памяти (4 байта под тип float * 300*300+300*sizeof(float) - ничего себе зарезервировала прога).
Ответ отправлен: 30.09.2004, 17:55 Отправитель: gAmUssA Отвечает DiGiT
Доброе время суток, Александр! А вы знаете что стек не безграничный ? Второй вопрос о каких глобальных переменных шла речь ? В динамической памяти рекомендуется создавать большие структуры данных, а для небольших объектов можно использовать стековую память, так как память в стеке выделяется очень быстро одной операций(просто изменение одного регистра), а вот выделение дополнительной памяти ведет, вообще говоря, к системным вызовам.( Вы когда нибудь получали сообщение Stack Overflow?) если да то суть проблемы ясна, если нет. Еще раз прочитайте, потом операциями new следует выделять память под объект если планируется его использование за областью видимости. Ответ отправлен: 30.09.2004, 05:27 Отправитель: DiGiT Отвечает vitya
Приветствую Вас, Александр! Обычно - большинство структурных объектов создаются в куче. Глобальные объекты - не самая хорошая вещь. Использовать память в куче надо в зависимости от задачи. Например если вы описываете граф - то все вешины надо описывать как указатели и создавать их динамически. Ответ отправлен: 30.09.2004, 09:37 Отправитель: vitya
Вопрос № 1918
HELLO!!! Люди помогите пожалуйста! Мне в этом году нужно писать дипломку. Может кто то подсказать интересную тему. А то все самое интересное поразбирали. Спасиба
Доброе время суток, Sergei! Необходимо название специальности, чтобы сформулировать дипломную работу. Дипломная работа прежде всего должна подтвердить квалификацию студента, не более того. Так если ты информационник, то наверное недостаточно написания какой нибудь программы, а нужно именно создание ИС, (причем написание самой программы для этого диплома может занять не более недели, я даже встречал за 1 день). А если ты математик, то соответсвенно нужно показать, что студент квалифицирован знает методы и умеет их применять на практике. Ответ отправлен: 30.09.2004, 05:30 Отправитель: DiGiT Отвечает vitya
Доброе время суток, Sergei! Асинхрoнное моделирование цифровых схем Ответ отправлен: 30.09.2004, 09:35 Отправитель: vitya Отвечает gAmUssA
Доброе время суток, Sergei! Блин, а направление какое? Я могу посоветовать генетические алгоритмы, нейронные сети, распознавание образов и использывание нейросетей в распознавании.
Ответ отправлен: 30.09.2004, 17:23 Отправитель: gAmUssA
Вопрос № 1919
Доброго времени суток уважаемые эксперты. Хочу записаться на занятия посвященные подготовке к различным студ олимпиадам по программированию. Требуется мнение экспертов - нужно ли это. помогут ли места на олимпиадах в дальнейшем поиске интересной работы? Может лучше заниматься в ээто время самообразованием читая и познавая новое, вместо решения задач, не требующих высокого уровня ЗНАНИЙ.
Здравствуйте, koshi! Да помогут. Олимпиады во первых могут дать путевку на бесконкурсное поступление в институт, во вторых это бесплатная возможность заставить работать мозги. А умение работать могзами очень важно. Если ты молод не задумываясь берись с возрастом голова станет не та, соображать так быстро не получится да и проблем левых станет больше, там и займешься самообразованием(набиранием опыта). Хотя разве не получится совмещать и то и то? Ответ отправлен: 30.09.2004, 05:34 Отправитель: DiGiT Отвечает vitya
Приветствую Вас, koshi! Знания - они всегда нужны и прогождаются. Участие в олимпиаде ничего не дает, а вот победа (хорошее место, диплом) в серьезной олимпиаде помогут при устройстве. Ответ отправлен: 30.09.2004, 09:33 Отправитель: vitya Отвечает Василевский Александр
Добрый день, koshi! Моё мнение таково: олимпиады конечно вещь хорошая, но не нужная. Подготовка к олимпиаде отнимает огромное количество времени и умственных усилий. На олимпиадах решаются задачи, некоторым образом "оторванные от жизни". Кроме того, по своему опыту знаю, не зависимо от степени подготовки к олимпиаде, перед олимпиадой, ка и перед экзаменами, сильно волнуешься. А, как известно, нервные клетки не восстанавливаются. Так что лучше провести время за самообразованием.
Ответ отправлен: 30.09.2004, 10:28 Отправитель: Василевский Александр Отвечает gAmUssA
Приветствую Вас, koshi! На мой взгляд, эти курсы по большо му счёту нифига не дают. Что касается меня, я тоже пробывал себя на этом поприще, мне не понравилось.Я пришёл туда (курсы проходили в моём универе ЛГТУ), сидят чуваки практически ничего не представляющие, а "распальцовка" такая, как будто Пентагоны каждый день ломают как делать нечего. Вообщем, решать тебе, но я советую не заморачиваться разного рода курсами и при наличии свободного времени занятся самообразованием - читать книги, писать проги, посещать форумы и т.п. Удачи! Ответ отправлен: 30.09.2004, 17:22 Отправитель: gAmUssA
Вопрос № 1920
Здравствуйте как в Apache настроить работу с С++ те есть скрипты которые на PHP не тянут, нужно ускорить их работу. написал на С++, а как подключить к Apache не знаю Спасибо.
Добрый день, allex! Скомпилируйте их, назовите *.cgi и положите в директорию, где могут выполнсяться cgi-скрипты. Ответ отправлен: 30.09.2004, 13:27 Отправитель: knick
Вопрос № 1922
Здрысть, уважаемые эксперты! Хочу воспользоваться функциями CryptoAPI при написании проги на C-sharp. Для удобства необходимо подключить заголовочный файл wincrypt.h. В С++ это делается простым инклудом, а вот в шарпе я подобной директивы не нашёл. Подскажите пожалуйста, как мне впихнуть в прогу wincrypt.h и достучаться до CryptoAPI. Заранее спасибо!
Доброе время суток, Somebody! Попробуй using System.Security.Cryptography Ответ отправлен: 30.09.2004, 17:55 Отправитель: gAmUssA
Вопрос № 1923
Уважаемый эксперт, у меня такой вопрос: я программирую на Visual C++ 6.0, так вот, можно ли в 32-х разрядном консольном приложении обратиться к видеобуферу в текстовом режиме (прочитать из него данные (символ и его атрибуты) или записать) на прямую, без использования API функций (конечно возможно придется использвать встроенный ассемблер, но это меня не смущает), мне бы работающий примерчик с коментариями. Заранее спасибо.
Добрый день, Андрей! Увы, даже используя ассемблер, обратиться напрямую к видеопамяти в Windows нельзя. Так или иначе придётся использовать функции API. Если Вы хотели увеличить скорость работы программы, отказавшись от функций API, то могу предложить следующий способ. Создайте в памяти виртуальный текстовый экран с размерами, как и у консольного окна. При помощи функций ReadConsoleOutput и WriteConsoleOutput можно передавать большие блоки для чтения и записи. Скорость при этом будет значительно выше, чем при побайтном вводе/выводе. При этом Вы можете обращаться напрямую к виртуальной видеопамяти. Ответ отправлен: 30.09.2004, 12:48 Отправитель: Василевский Александр Отвечает vitya
Доброе время суток, Андрей! Нет нельзя. Ответ отправлен: 30.09.2004, 15:45 Отправитель: vitya Отвечает gAmUssA
Доброе время суток, Андрей! Насколько мне известно, в Windows напрямую обратится к видеобуферу будет проблематично - она вообще не любит что бы её обходили. Попробуй поработать с DOS прерываниями. Попробуй поискать ответ в книге Фролова "Программирование видеоадаптеров"Грузите апельсины бочками... Ответ отправлен: 02.10.2004, 14:47 Отправитель: gAmUssA
Вопрос № 1924
Уважаемые эксперты! У меня компилятор BorlandC++forDOS Ver3.1 не понимает русский язык, вместо русских букв - загогулины. В чем может быть проблема? У знакомых он же спокойно понимает русский. Сменить на более новую версию не могу. Спасибо.
Здравствуйте, Booty! У меня была такая же проблема. Попробуй запускать TC3 из FARa, если не поможет, то можешь попробовать установить XP Tweaker, там есть вкладка "Устранение проблем", поставь галочку в пункте использовать другую кодировку в DOS приложениях.
Ответ отправлен: 30.09.2004, 14:52 Отправитель: P@triot Отвечает gAmUssA
Добрый день, Booty! Напиши мне на мыло biwen@yandex.ru и я вышлю тебе руководство. Ответ отправлен: 30.09.2004, 17:22 Отправитель: gAmUssA
Вопрос № 1925
hello! скажите, есть ли программы для правильного форматирования с++ исходников? (руками - сам знаю что можно, хочу прогу!) например программа, в ней 2 цикла, один вложен в другой; написаны без отступов. я запускаю программу, открываю этот исходник и прога выдаёт результат: тот же исходник, но вложенный цикл сделан с отступом. ну, что посоветуете?
Здравствуйте, soflot! Я посоветовал бы использывать "правильный редактор" - на мой взгляд - Visual Studio .NET. Очень мощьный IDE. Также попробуй прогу Public Source (по моему так она называется). Ответ отправлен: 30.09.2004, 17:21 Отправитель: gAmUssA
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.