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

Расположение данных в стеке и в куче - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция получает неотрицательную десятичную дробь и возвращает её представление в системе счисления с основанием р = 16 http://www.cyberforum.ru/cpp-beginners/thread593523.html
Написать и протестировать функцию. Функция получает неотрицательную десятичную дробь и возвращает её представление в системе счисления с основанием р = 16. Помогите пожалуйста)
C++ [C++] Возведение дробного числа в дробную степень Здравствуйте! Подскажите каким образом можно возвести дробное число в дробную степень? Например: 2.13.5 = 13.4205 pow(2.1, 3.5) и тому подобное не предлагать! http://www.cyberforum.ru/cpp-beginners/thread593508.html
Циклы с пред- и постусловим C++
Помогите, пожалуйста, исправить. Рассчитайте e - основу натуральных логарифмов:e=\lim_{n\rightarrow \propto }n/ \sqrt{n!}. Определите при каком n значении впервые выполнится условие...
Шаблон данных метода кдасса, наследование C++
Eсть 3 класс 1 базовый 2 наследуемых, и функция... class Beast { public: int x; int y; int day; }; class Rabbit: public Beast{};
C++ графическая интерпретация перколяции http://www.cyberforum.ru/cpp-beginners/thread593413.html
есть заголовочный файл percolation.h содержит описание класса domain(конструктор) - получает при вызове два параметра - ширину и высоту расчетной области - и выделяет память под массив. Координаты...
C++ Создать строку S2, содержащую вначале цифры, а затем другие символы из строки S Прошу помочь с заданием. Дана строка S, состоящая из цифр и других символов. Создать новую строку, содержащую вначале цифры, а затем другие символы из S. подробнее

Показать сообщение отдельно
Ze
3 / 3 / 0
Регистрация: 30.10.2010
Сообщений: 12

Расположение данных в стеке и в куче - C++

01.06.2012, 16:52. Просмотров 634. Ответов 2
Метки (Все метки)

Друзья, возник вопрос.
Следующий код
C++
1
2
3
char length_buffer[4];
...заполнение length_buffer двоичным представлением целого числа 999...
int length = *reinterpret_cast<int *>(&length_buffer);
работает. переменная length принимает значение 999.
Но если четырехбайтовый массив расместить в куче, тоже самое двоичное значение перестает интерпретироваться как 999:
C++
1
2
3
char *length_buffer = new char[4];
...заполнение length_buffer двоичным представлением целого числа 999...
int length = *reinterpret_cast<int *>(&length_buffer);
не работает.

Первое предположение было - из-за того что адресация в куче идет снизу, а в стеке - сверху. Однако выяснилось, что одно и то же двоичное представление 999 в куче интерпретируется каждый раз как разные значения.

Прошу не сыпать сообщениями вида "для чего это надо, неправильный подход", "reinterpret_cast - зло" и т.п.
А ответить по существу о причине такого поведения. Заранее благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru