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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gulejop
0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 10
#1

Поля структуры в памяти - C++

30.09.2013, 21:47. Просмотров 304. Ответов 3
Метки нет (Все метки)

Приветствую всех!!!
Интересует следующий вопрос: есть какая нибудь любая структура, например:
C++
1
2
3
4
5
6
struct my_struct
{
  int number;
  char name[20];
  float value;
};
мне ее надо записать на диск через ofstream::write(const char*,std::streamsize);
Будут располагаться поля в памяти в строгом установленном порядке, т.е. можно ли сделать так:
C++
1
write((const char*)&my_struct, 28);
А потом причитать:
C++
1
read((char*)&my_struct, 28);
Всякие std::vector, std::string использоваться не будут, только простые типы. Пробовал так делать - работает, но есть ли гарантия что это будет работать на всех компиляторах и на всех машинах?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2013, 21:47     Поля структуры в памяти
Посмотрите здесь:

Очистка памяти из под структуры - C++
Здравствуйте, имеется задача очистить память из под структуры, код программы struct Node { int data; }; void f() { Node*...

Структуры. Динамическое выделение памяти - C++
Добрый день! Хочу задать следующий вопрос: typedef struct name { char *name; char *surename; } NAME; void main () { ...

Аллокирование памяти для структуры - C++
Нужно зааллокировать память для структуры struct Baze { char artist; char kompoz; int year; ...

Структуры и динамическое выделение памяти. - C++
Привет, нужна помощь: есть написанная программа, которая работает со структурами, эту программу надо переписать так, чтобы она использовала...

Сортировка поля структуры по возрастанию - C++
Здравствуйте! Есть вот такой вопрос: Есть программа печати расписания, вот ее код #include <iostream.h> #include <conio.h> #include...

Структуры. Ввод значения поля - C++
Проблема: при заполнении полей пишет переменная не инициализирована. Т.е. если я в коде инициализирую, то считает. А когда делаешь запрос...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.09.2013, 21:54     Поля структуры в памяти #2
Вот здесь почитайте:
Использование #pragma pack(push,1)... pack(pop)
http://www.kalinin.ru/programming/cpp/31_07_00.shtml
http://habrahabr.ru/post/142662/
gulejop
0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 10
01.10.2013, 19:49  [ТС]     Поля структуры в памяти #3
Спасибо огромное за ссылки. Искал до этого, но почему то ничего толкового не нашел.
В общем, понял что так лучше не делать. Придется каждый элемент по отдельности сохранять.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2013, 19:50     Поля структуры в памяти
Еще ссылки по теме:

Получить реальный адрес структуры в памяти - C++
Есть код: #pragma pack(push, 1) struct jump { unsigned char opcode; // 0xe9 UINT dif; } jmp; #pragma...

Освобождение памяти при удалении структуры - C++
Есть структура с указателем на блок памяти, если удалить структуру,память внутри структуры освободится или же надо освободить память внутри...

Нюансы выделения и освобождения памяти (структуры) - C++
struct point { int a; point *next; } point *p=new point Я освобожу всю память которая отводилась под динам. структуру? delete...

Странность определения размера памяти структуры - C++
Здравствуйте. Никогда с таким не сталкивался, а сейчас просто крышу снесло пока нашёл ошибку там, где не ожидал... struct STRUCT{INT32...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Убежденный
Системный программист
Эксперт С++
15298 / 6930 / 1096
Регистрация: 02.05.2013
Сообщений: 11,340
Завершенные тесты: 1
01.10.2013, 19:50     Поля структуры в памяти #4
Цитата Сообщение от gulejop Посмотреть сообщение
Придется каждый элемент по отдельности сохранять.
А еще лучше - воспользоваться какой-нибудь библиотекой сериализации и не мучиться.
Yandex
Объявления
01.10.2013, 19:50     Поля структуры в памяти
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru