Я полагаю, вы ищете:
способ управления распределением памяти в стеке, по крайней мере, в контексте не перезаписи уже использованной памяти
blockquote >Конечно, об этом позаботится ОС! Системные вызовы низкого уровня гарантируют, что вновь созданная автоматическая переменная не будет записана в уже используемый блок памяти.
В вашем примере:
for (int i = 0; i < 5; i++) { int nums[5]; ... }
это не случай, так как
nums
выйдет из области действия , когда i-я итерация цикл for завершается.В результате, блок памяти
nums
, сохраненный во время первой итерации, будет помечен как свободный, когда начинается вторая итерация, что означает, что когдаnums
первой итерации будет выделено в стек, он не будет знать о существованииnums
первой итерации, так как он уже вышел за рамки - он не существует!
С QT версии 4.5 теперь прибывает упакованный с официальным, кросс-платформенным спокойным IDE QtCreator. Просто загрузите и установите Qt 4.5, и Вы добираетесь, полнофункциональное (освобождает, IDE, конструктор форм, редактор ресурса), среда разработки бесплатно.
Visual Studio 2008 + WTL был бы большой комбинацией, если Вы не волнуетесь по поводу межплатформенной поддержки. QT выглядит большим, но для простого приложения это могло бы быть излишество - распределение спокойного приложения означает поставлять набор DLLs, например, тогда как у Вас есть меньше зависимостей с WTL.
Просто мой 2c. Я не хочу запускать любые войны пламени здесь.:)
В то время как возможно для использования текущего IDE и инструментария как QT при поиске пути наименьшего количества сопротивления необходимо пойти с Visual Studio. Вы найдете лучшую документацию и большую часть поддержки, идущей тем путем. Проверьте Express Edition, который свободен (как в пиве). Затем пойдите, захватывают копию хорошей книги по предмету как Windows Программирования Charles Petzold. Вы должны быть все установлены.
У Вас есть много опций, и Вы могли использовать много инструментов, как описано Charlie Martin. Я думаю, что, если Вы хотите самый легкий путь, необходимо использовать wxDev-C++, который является Dev-C++, связанным библиотекой wxWidgets GUI. После установки его можно непосредственно разработать приложения GUI без потребности в дополнительной конфигурации. Возможно, Dev-C++ является старый IDE, но Вы уже используете его, и Вы знаете это. И wxWidgets является солидной библиотекой GUI.
Я использую Окончательный ++ http://ultimatepp.org/ для кросс-платформенного C++ разработка GUI. Это также имеет полную библиотеку утилит для сетей, баз данных, и т.д. и действительно хорошего IDE. Это - лицензируемый BSD, таким образом, никакие проблемы, делающие, что Вы хотите с ним. Это имеет действительно хорошую общественную поддержку также.
Dev C++ больше не находится в процессе активного развития (и немного naff так или иначе). Если Вы хотите IDE с открытым исходным кодом, который поддерживает разработку Windows GUI, попробуйте Код:: Блоки.
Хорошо, существует две части к этому.
Первый - то, что в соответствии с Windows, Вы испытываете необходимость в библиотеке Windows GUI. Можно записать в Windows API несколькими способами, но самое простое должно использовать собственную Microsoft. Это означает забирать Visual Studio в некотором воплощении.
QT, Wx и otehrs являются всеми служебными библиотеками, созданными сверху основного Windows API. Они хороши для мобильности на другие платформы, но они обязательно добавляют некоторую сложность.
Для C++ Вам нужен компилятор. Снова, для Windows, самая простая вещь состоит в том, чтобы использовать Visual Studio, но существуют другие доступные компиляторы. Наиболее распространенный свободный будет компиляторами GNU. Простой способ получить их с Cygwin, но это - подобная UNIX среда.
Я думаю, что заключение состоит в том, что для новичка, Вы лучше всего выключены с Visual Studio.
После того как Вы получаете его, существуют многие учебное руководство вокруг в сети и в Microsoft, чтобы учиться использовать его.
Прежде всего Dev-C++ больше не разрабатывается и, кажется, отказался с большим количеством ошибок. Во-вторых, ЕСЛИ Вы хотите придерживаться окон API, проверьте мой небольшой Диалоговый Шаблонный проект.
Я просто добавил файлы проекта для Visual Studio 2008, Код:: Блоки и Dev-C++ только для получения Вас перемещение. Сообщите мне, нужно ли Вам что-либо еще, поскольку я был бы рад способствовать Вам.
Следующее предполагает предназначение для Windows только платформа (если Вы посмотрите перекрестная ОС - затем, много других сообщений касается различных вариантов).
Можно довольно повезти в этом, у Вас уже есть приложение, которое может быть запущено из командной строки. Совершенно возможно работать на одном из языков .NET и получить доступ к Вашему существующему приложению. Любой язык .NET (C#, VB.Net, управляемый С++) может привыкнуть к очень быстро конструкции UI и связать компоненты UI и события и затем иметь, которые обращаются к Вашему существующему приложению - передача необходимых параметров командной строки.
Другая опция: Управляемый С++ на самом деле позволяет Вам смешиваться управляемый (код .NET) и неуправляемый код (стандарты совместимый C++ - т.е. - Ваши существующие приложения) в тех же проектах (даже те же файлы для большого количества кода). Это предоставляет Вам доступ ко многим современным функциям IDE и библиотеке .NET для чего-либо сетевого, нового, который Вы хотите добавить. Вы просто играете немного с некоторыми настройками проекта и "это просто работает" (хорошо - могли бы быть некоторые вещи изучения, но это довольно легко).
В то время как у меня есть полная версия Visual Studio - я полагаю, что бесплатные версии "Экспресса" (http://www.microsoft.com/express/product/) довольно способны для многих из этих задач.