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

Вопрос по структурам - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не как не могу найти ошибку уже более часа http://www.cyberforum.ru/cpp-beginners/thread1114535.html
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <math.h> #define _USE_MATH_DEFINES #define M_PI 3.14159265358979323846 int _tmain(int argc, _TCHAR* argv) {double...
C++ работа со строками и символами! Программирую не давно. #include <conio.h> #include <iostream> using namespace std; int main() { int s; char c1,c2; http://www.cyberforum.ru/cpp-beginners/thread1114534.html
C++ Подсчет дней между датами, преждевременный выход из цикла
Здравствуйте! Делаю программу на С++ для подсчета дней между двумя датами, цикл завершается после первой итерации, условие выхода из цикла не соблюдается. Вот код: // Test_Number_of_days.cpp:...
Есть в Visual Studio 2013 что-то типа builder c++ 6 C++
Есть в Visual Studio 2013 что-то типа builder c++ 6 и стоит его учит или есть какие-то более популярен компилятьр за builder c++ 6
C++ Как настроить пользовательские правила построения в Visual Studio ? http://www.cyberforum.ru/cpp-beginners/thread1114517.html
Извиняюсь за повторное создание темы. Просто в этом разделе намного больше онлайн, в отличии от того где вообще никого. И выше шанс, что мне ответят, поскольку тут много людей, умеющих пользоваться...
C++ Удаления узла из бинарного дерева поиска Уже довольно много времени убил на эту задачу, теорию понимаю, на практике реализовать никак не получается. Помогите пожалуйста написать эту функцию которая подойдет под мой код: #include... подробнее

Показать сообщение отдельно
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.03.2014, 13:49
вариант один:
у вас есть объект типа A и массив байт.
берете и копируете все байты из массива по адресу этого объекта:
C++
1
2
3
4
A a;
char bytes[sizeof(A)];
// заполняем массив байт
memcpy(&a, bytes, sizeof(A));
вариант два:
Обекта нет. есть только указатель на кусок памяти.
Берем этот указатель и кастим его к указателю на структуру
C++
1
2
3
void* ptr = ...
A* aPtr = (A*) ptr;
aPtr->a = 666; // записываем туда что-то.
В случае указателей:
указатель в 32 битной системе занимает 4 байта. и в этих четырех байтах
какой-то адрес. Если вы этот указатель перезапишите своими байтами,
то они конечно образуют какое-то значение, которое будет интерпретироваться
как адрес. но вот обращение по такому адресу может привести к краху проги,
если адрес будет указывать непонятно куда.

И еще структура не обязательно будет состоять из 7 байт, даже если сумма
размеров отдельных мемберов составляет 7. Компилятор может скомпоновать
такую структуру с учетом всяким там выравниваний. Размер может оказаться
больше.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru