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

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

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

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

30.09.2013, 21:47. Просмотров 322. Ответов 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 использоваться не будут, только простые типы. Пробовал так делать - работает, но есть ли гарантия что это будет работать на всех компиляторах и на всех машинах?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2013, 21:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поля структуры в памяти (C++):

Закрытые поля структуры. - C++
Существуют ли закрытые поля структуры? Если да, то как их описывать? Добавлено через 39 минут 26 секунд Ну что никто не может...

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

Выделение памяти под структуры - C++
Когда я только знакомился с кодингом на С(С++) я скачивал с инета очень много всякой литературы... Так вот... Недавно я начал заново...

Удаление структуры из динамической памяти - C++
struct aTapeElement { char Operator; float Operand; aTapeElement *NextElement; }; Это кусок кода из 15-го урока книги...

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

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

3
alsav22
5428 / 4823 / 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/
1
gulejop
0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 10
01.10.2013, 19:49  [ТС] #3
Спасибо огромное за ссылки. Искал до этого, но почему то ничего толкового не нашел.
В общем, понял что так лучше не делать. Придется каждый элемент по отдельности сохранять.
0
Убежденный
Ушел с форума
Эксперт С++
15708 / 7219 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
01.10.2013, 19:50 #4
Цитата Сообщение от gulejop Посмотреть сообщение
Придется каждый элемент по отдельности сохранять.
А еще лучше - воспользоваться какой-нибудь библиотекой сериализации и не мучиться.
0
01.10.2013, 19:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2013, 19:50
Привет! Вот еще темы с ответами:

Расположение полей структуры в памяти - C++
Есть структура MyStruct содержащая в себе два поля int. Есть массив объектов MyStruct. Гарантируется ли что поля MyStruct будут расположены...

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

Расположение полей структуры в памяти - C++
Нифига себе на что плюсы способны... #include "stdafx.h" #include <time.h> #include <stdlib.h> #include <iostream> using...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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