Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

поиогите с union

17K
13 апреля 2006 года
qbad
2 / / 13.04.2006
typedef struct _list_t
{
int num;
struct _list_t *prev, *next;
} *list_t;


struct st
{
int st_num;
list_t list;
};

union un
{
list_t l1;
st l2;
};

можно работать со списком l2 в un и не произойдет ли при этом перезапись значений st_num и list в структуре st??
242
13 апреля 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by qbad

можно работать со списком l2 в un и не произойдет ли при этом перезапись значений st_num и list в структуре st??



union - это использование общего участка памяти(RAM) для переменных которые используются в разных блоках программы(Ни в коем случае не одновременно!). И теперь посуди сам: сохранил ты инфо для одной переменной, а затем используешь этот же участок для сохранения инфо для другой переменной . И какой будет результат?
п.с. если в union переменные разных типов занимают разный объем памяти, тогда для переменных union выделяется RAM по размеру наибольшей переменной. Oдин участок памяти для всех переменных -> подходит только для промежуточного сохранения данных.

406
13 апреля 2006 года
vitaly2003s
481 / / 27.07.2004
Произойдет перезапись. Так как в случае обявления union используется самого большого из всех элементов union участок памяти,общий для всех элементов этого обединения. И соотвественно ты имееш право использовать только один из его элементов,в данном случае либо l1 или l2. Чтобы использовать их одновременно используй struct
391
14 апреля 2006 года
Archie
562 / / 03.02.2005
Цитата:
Originally posted by qbad

можно работать со списком l2 в un и не произойдет ли при этом перезапись значений st_num и list в структуре st??



Немнго непонятен твой вопрос. Если ты работаешь с l2, то произойдет перезапись только указателя l1 в union un. st-num и list - это поля структуры st l2, с ними можно делать что угодно - они не перекрываются.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог