Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Что почитать про распределение памяти? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблема с подключением стандартных либ http://www.cyberforum.ru/cpp-beginners/thread160972.html
При компиляции даже такого проекта в Eclipse идет ошибка. Текст ошибки: Building target: Proj Invoking: GCC C++ Linker g++ -o"Proj" ./Proj.o ...
C++ Заполнение массива вещественными числами с двумя знаками после запятой Здравствуйте! Я только начала работать в С++ и не знаю как заполнить одномерный массив из 10 элементов вещественными числами в диапазоне от 1 до 10 с двумя знаками после запятой. Проблема именно в... http://www.cyberforum.ru/cpp-beginners/thread160955.html
C++ Включение поддержки UNICODE в программе
Помогите пожалуйста с такой проблемой: я написал программу используя просто main(). В программе у меня есть функции, в которых выполняется функция main(). Захотелось добавит поддержку юникода,...
Бот для браузерной игры C++
Решил написать бота для браузерной игры, и задался вопрос как это сделать, знаю что иногда боты пишут на JavaScript, но я пока учу Си, и не хочу метаться от языка к языку программирования. Слышал что...
C++ Не определяется функция _atold http://www.cyberforum.ru/cpp-beginners/thread160887.html
Почитал про данный метод. На сколько я понял, он может привести массив char к типу double. Так же, указано, что он принадлежит к stdlib.h или к math.h Только вот в моем случае, при подключении...
C++ Текст в CodeBlocks Здравствуйте. При компиляции программы в CodeBlocks выскакивают ошибки: DEVCAPS1.cpp:53: undefined reference to `GetStockObject@4' DEVCAPS1.cpp:95: undefined reference to `GetTextMetricsA@8'... подробнее

Показать сообщение отдельно
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,482
25.08.2010, 15:16
Тут всё не так просто.
Во-первых: измени свой код. Оставь самое необходимое. В главной функции ты объявляешь переменные, изменяешь одну из них в цикле... Так оставь ТОЛЬКО эти составляющие.

C++
1
2
3
4
5
6
7
8
9
int main() {
   int x=0;
   int y=10;
   int z=5;
   for (x; x < y; x++)   {
    z= 1;
   }
 return 0; 
}

Во-вторых. Запомни: каждый компилятор работает по своему. То есть каждый сделает то, что ты задумала. Но они соревнуются друг с другом в запутаности, что ли. Так, например, при компиляции Этого кода мне с большим трудом удалось отыскать участо кода, выполняющийся ДАЛЕКО не сразу. Но именно он непосредственно и выполнял задуманное. Вот этот участок

C++
1
2
3
4
5
6
7
8
9
10
11
MOV DWORD PTR SS:[EBP-4],0
MOV DWORD PTR SS:[EBP-8],0A
MOV DWORD PTR SS:[EBP-C],5
MOV EAX,DWORD PTR SS:[EBP-4]
CMP EAX,DWORD PTR SS:[EBP-8]
JGE SHORT ra.004012E5
MOV DWORD PTR SS:[EBP-C],1
LEA EAX,DWORD PTR SS:[EBP-4]
INC DWORD PTR DS:[EAX]
JMP SHORT ra.004012CF
MOV EAX,0
Обратите внимание, девушка, в стек кладётся то, что вы хотели 0, 10 (в шестнадцатиричной системе A и 5) А обращение к этим переменныи идёт так: Ну вот чтобы обратиться к той переменной, которая 5, пишется так:
C++
1
MOV EAX,DWORD PTR SS:[EBP-4]
Ну, вот.Что это за команды, что это за парметры ВЫ просто обязаны изучить по ссылке, что я ВАм дал или по учебнику для ассемблера.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru