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

Reinterpret_cast - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подправьте пожалуйста код. http://www.cyberforum.ru/cpp-beginners/thread555154.html
#include "stdafx.h" #include "iostream" using namespace std; int main(){ int map; int grass = {1,"grass.jpg"}; // grass = проходимость , grass = путь до картинки for(int x = 0;x<10;x++){...
C++ Как взять разность по модулю между двумя числами int? Суть в теме: "Как взять разность по модулю между двумя числами int?". Заранее спасибо :) http://www.cyberforum.ru/cpp-beginners/thread555137.html
Составить программу для подсчёта произведения элементов целочисленной прямоугольной таблицы C++
Составить программу для подсчёта произведения элементов целочисленной прямоугольной таблицы Y, состоящей из p строк и k столбцов, сумма двух индексов которых есть число чётное. Использовать...
C++ Вывести на экран все символы которые находятся во второй половине текста
помогите с этим заданием пожалуйста...... я знаю что там нужно все количество символов разделить на два присвоить каждому значению свое зн-е но как записать эту прогу....???
C++ Использование vcl.h http://www.cyberforum.ru/cpp-beginners/thread555122.html
Здравствуйте. Есть такая программа: #include <vcl.h> #include <iostream.h> #include <conio.h> #pragma hdrstop //--------------------------------------------------------------------------- ...
C++ ошибка: отсутствует обязательный файл "" программа должна выполнять циклический сдвиг цисла #include <stdio.h> #include <conio.h> #include <locale.h> #include <cstdlib> #include "func.h" подробнее

Показать сообщение отдельно
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
22.04.2012, 16:24
мда. писать все в одной строке - то еще зло. понять друго что происходит.
по вашей проблеме:
после выкидывания невлияющего на результат кода и принимая во внимание что length == 0
все это дело можно упростить до:
C++
1
2
3
4
5
6
7
8
const char res1 = *(reinterpret_cast<const char*>(&length) + cur_length_byte);
const char res2 = length + cur_length_byte;
 
В перовой строчке берется адрес переменной length, к этому адресу прибавляется
cur_length_byte байт (ну т.е. один байт т.к. cur_length_byte==1 ). после вот такого
складывания получается укзатель, который указывает за переменную length. потом
этот указатель разыменовывается. это конечно же не то же самое, что складывание
двух переменных. Вот поэтому результаты отличаются.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.