поиогите с union
{
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??
можно работать со списком l2 в un и не произойдет ли при этом перезапись значений st_num и list в структуре st??
union - это использование общего участка памяти(RAM) для переменных которые используются в разных блоках программы(Ни в коем случае не одновременно!). И теперь посуди сам: сохранил ты инфо для одной переменной, а затем используешь этот же участок для сохранения инфо для другой переменной . И какой будет результат?
п.с. если в union переменные разных типов занимают разный объем памяти, тогда для переменных union выделяется RAM по размеру наибольшей переменной. Oдин участок памяти для всех переменных -> подходит только для промежуточного сохранения данных.
можно работать со списком l2 в un и не произойдет ли при этом перезапись значений st_num и list в структуре st??
Немнго непонятен твой вопрос. Если ты работаешь с l2, то произойдет перезапись только указателя l1 в union un. st-num и list - это поля структуры st l2, с ними можно делать что угодно - они не перекрываются.