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

Оператор =. Не могу найти объяснение ситуации - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ подробно объяснить каждое действие программы http://www.cyberforum.ru/cpp-beginners/thread571733.html
#include "stdafx.h" #include <iostream> #include <string> using namespace std; int main() { fstream f; f.open("text.txt", ios::in); if (!f.is_open())
C++ Проверить является ли слово палиндромом Символьная строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно палиндромом). есть наброски кода: void main() { int i,j=0; string s,s2; cout<<"vvedite slovo\n"; getline(cin,s); for (i=s.length()-1;i>=0;i--) s2=s; http://www.cyberforum.ru/cpp-beginners/thread571731.html
Матрицы. Удаление строк. C++
Помогите решить задачку Описать процедуру RemoveRows(A, M, N, K1, K2), удаляющую из вещественной матрицы A размера M × N строки с номерами от K1 до K2 включительно (предполагается, что 1 < K1 ≤ K2). Если K1 > M, то матрица не изменяется; если K2 > M, то удаляются строки матрицы с номерами от K1 до M. Двумерный массив A и числа M, N являются входными и выходными параметрами. Используя процедуру...
В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из клетки (1, 1) в клетку (N, N C++
В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из клетки (1, 1) в клетку (N, N), чтобы сумма цифр в клетках, через которые он пролегает, была минимальной; из любой клетки ходить можно только вниз или вправо. Ограничения: 2 <= N <= 250. Ввод: В первой строке находится число N. В следующих N строках содержатся по N цифр без пробелов. Вывод:...
C++ Разработать иерархию классов http://www.cyberforum.ru/cpp-beginners/thread571700.html
Подъемный кран. Необходимо разработать иерархию классов.В каждом классе иерархии нужно предусмотреть: 1)Наличие не менее 3х конструкторов 2)Виртуальный деструктор 3)Перезагрузка операции. Обязательно перезагрузить операции: присвоение, инкременты и дискремента в обеих формах, поместить в поток , взять из потока, любую из бинарных и любую из унарных операций. 4)Виртуальная функция ...
C++ Error C2109: для индекса требуется массив или указатель #include <stdio.h> #include <conio.h> int const max_widht=3; int const max_height=3; int minmax (int min, int max, int val, int max_height, int max_widht, int* m) { int i,max_w, min_w; for (int i=0; i<max_widht; i++) { подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
12.05.2012, 21:13     Оператор =. Не могу найти объяснение ситуации
моя теория заключалась в том, что oX все таки другого размера. и oX[1] - это выход за пределы.
далее, в первом варианте сразу же после объявления этого массива следовала переменная GLfloat cnt. ну она следующая по стеку за таким массивом и адреса &oX[1] и &cnt совпадают. Далее при вызове всяких там функция стек растет и заполняется всякой херней. перед выводом он возвращается к исходному размеру. Так вот в случае наличия переменной cnt весь хлам в памяти находится за этой переменной. поэтму oX[1] - это ссылка на эту переменную и в ней корректное значение. В случае, когда такой переменной нет &oX[1] - это как раз адрес начала хаоса и при попытке интерпретировать этот адрес как переменнюу типа GLfloat выводилось рандомное число.
Но раз все скопипасченно в точности, то эта теория не работает.
Можно попробовать поставить брейк поинт на адрес в памяти (&oX[1]) и соответственно увидеть, в каких местах идет обращения и изменения этой памяти.
 
Текущее время: 13:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru