Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
1 / 1 / 1
Регистрация: 10.09.2014
Сообщений: 59

Как обратиться к полям объединения, которое находится внутри структуры?

04.03.2015, 19:11. Показов 4483. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Например, дан массив структур
C++
1
2
3
4
5
6
7
8
struct a
{
   union b
    {
      char *c1;
      int c2;
    };
}d[3];
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2015, 19:11
Ответы с готовыми решениями:

Как обратиться к полям структуры через указатель и объявление указателя на структуру
Как обратиться к полям структуры через указатель и объявление указателя на структуру? #include "stdAfx.h" #include...

Как обратиться к объекту, в частности к JButton, по имени, которое находится в переменной?
Я по определенному алгоритму получаю имя JButton, которых в общем 40 штук, у которой надо изменить свойство. Естественно я получаю имя...

Как в запросе обратиться к элементу форму, если форма находится внутри TabControl?
Есть главная форма. В ней таб контрол, внутри него подчин. форма. Как правильно записать запрос - примерно следующее: select ......

2
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
04.03.2015, 19:26
C++
1
2
3
4
5
int i=0;
d[i].b.c1=new char[6];
strcpy(d[i].b.c1,"hello");
...
cout<<d[i].b.c2;
А Вы понимаете, что в этом объединении хранится указатель на текст, а не сам текст.
Т.е. cout<<d[i].b.c2; выведет значение получившегося указателя в десятичной СС.
Я бы c2 объявил как unsigned int
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
04.03.2015, 19:28
В структуре a нет полей, есть только вложенное определение объявления под именем b.
Если нужно добавить поле, то измени 7 строку например на:
C++
1
} f;
И сможешь обращаться к полям так например:
C++
1
d[0].f.c2;
Или измени 3 строку на
C++
1
union
и обращайся так:
C++
1
d[0].c2;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2015, 19:28
Помогаю со студенческими работами здесь

Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры)
Есть у меня вот такая структура, например struct Subject { int cost; int Volume; }; Потом создаю экземпляр, Subject G; ...

Как обратиться к приватным полям?
Я сделал так, может есть способ по меньше? class Triangle { private byte A; private byte B; private...

Как обратиться к полям класса?
Есть класс в котором в полях заданы некоторые параметры, я создал объект (через указатель), но не знаю как выводить его параметры. То есть...

Как в цикле обратиться к определенным полям в отчете?
К примеру, имеем отчет со 100 полями, которым присваиваем значения при открытии отчета. Как в цикле перебрать группу полей, например, с...

Как обратиться ко всем текстовым полям формы одновременно?
Есть кнопка CLEAR для очистки всех текстовых полей. Как их все обнулить? Програмка прилагается Спасибо using System; using...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru