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

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

Войти
Регистрация
Восстановить пароль
 
OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
#1

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

09.03.2014, 13:20. Просмотров 207. Ответов 1
Метки нет (Все метки)

Насколько я знаю можно заполнить структуру "наложив её на память", например
C
1
2
3
4
5
struct A {
   int a;
   char b[2];
   char c;
}
теперь если этой структуре присвоить 7 байт, то они распределятся правильно 4, 2, 1.
Но вопрос первый, как это сделать, в второй, что будет с указателями?
например есть
C
1
2
3
4
5
struct A {
   int a;
   char b[2];
   char *c;
}
Что будет с "c" ?
Не знаю, правильно ли я организовал вопрос, 3 раза переписывал )))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2014, 13:20     Вопрос по структурам
Посмотрите здесь:

вопрос по структурам - C++
Я начал писать программу на следующию задачу Описать структуру с именем STUDENT, содержащую следующие поля: -Фамилия и инициалы -Номер...

Вопрос по структурам - C++
Всем доброго дня. Возникло парочку вопросов по изучению С++ подскажите если не сложно. Купил книгу Дейтела "Как програмировать на С++"...

вопрос по структурам - C++
Задача.На основе данных входного файла составить список студентов,включающий фамилию,факультет, курс, группу, 5 оценок. Вывести в новый...

небольшой вопрос по структурам - C++
Плиз, подскажите как присвоить значение переменной(index) элементу массива структуры(avto.chet). Вроде бы ерунда, а не получается.

Задачка по структурам - C++
Добрый вечер! Есть такая задачка... С помощью структуры соорудить что-то типа базы данных. Три поля (имя,фамилия, возраст).Ввод с...

задание по структурам - C++
Вот задача Создать структуру с именем employee, содержащую два поля: номер со¬трудника типа int и величину его пособия в долларах типа...

программа по структурам - C++
помогите написать программу В файл base.txt поместить информацию о писателях и их произведениях (20…30 наименований), например: ...

задания по структурам - C++
помогите пожалуйста новичку... буду ОЧЕНЬ благодарен

проги по структурам на С++ - C++
1)даны координаты трех точек, проверить лежат ли точки на одной прямой, если лежат, то определить является ли какая-либо из точек серединой...

Прога по Структурам - C++
Ни могу понять как в массив забить рациональное число((( Вот задание: Ввести структуру (с полями числитель и знаменатель) для описания...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.03.2014, 13:49     Вопрос по структурам #2
вариант один:
у вас есть объект типа 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. Компилятор может скомпоновать
такую структуру с учетом всяким там выравниваний. Размер может оказаться
больше.
Yandex
Объявления
09.03.2014, 13:49     Вопрос по структурам
Ответ Создать тему
Опции темы

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