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

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

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

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

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

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

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

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

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

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

Задание по структурам - C++
#include<iostream.h> #include<conio.h> #include<math.h> #include<iomanip.h> float F_struct(); int exit(); struct...

1
DU
1485 / 1131 / 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. Компилятор может скомпоновать
такую структуру с учетом всяким там выравниваний. Размер может оказаться
больше.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2014, 13:49
Привет! Вот еще темы с ответами:

Курсовая по структурам - C++
Подскажите какую-нибудь интересную тему для курсовой. Главная тема сема списки и структуры , можно с уклоном на тему безопасности. Спасибо

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

влпрос по структурам - C++
есть код #include <stdio.h> #include <conio.h> #include <locale.h> #include <malloc.h> struct data { float key; float...

Программа по структурам! - C++
У меня такая задача: Ввести несколько структур типа «Товары на складе» с полями { название товара закупочная цена товарная...


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

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

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