Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > несколько структур


Автор: maxchv 17.4.2006, 08:33
Помогите начинающему программисту!

Проблема заключается в следующем: есть файл prepr.c -- предназначеный для получения исходных данных. 
В prepr.h объявляю структуры:
Код

struct ele
{
        int i,  j,  k; 
        int si, sj, sk;
        int material; 
}elem[MAX_NODES*2] ;
                        
struct mat{
        int NKxx, NKyy; 
        double Kxx[MAX_TABL], Kyy[MAX_TABL];
        double TKxx[MAX_TABL], TKyy[MAX_TABL];
        int NDENS, NC;
        double DENS[MAX_TABL], C[MAX_TABL];
        double TDENS[MAX_TABL], TC[MAX_TABL];
        int NQ;
        double Q[MAX_TABL];
        double TQ[MAX_TABL];
        double U, Te, te;
}mater[MAX_MATERIALS];

Подключаю файл prepr.h к prepr.c и объявляю 2 экземпляра структуры:
Код

struct ele elem[MAX_NODES*2];
struct sid side[MAX_NODES*3];

в которые помещаются данные. Но происходит вот какая непонятная для меня вещь: адреса &mater[num].Kxx[0] и &elem[602].material совпадают! т.е. поместив данные в elem[602].material я перазапишу mater[num].Kxx[0] и наоборот! 
Кроме того не только у этих двух членов одинаковые адреса, а и у других элементов т.к. изменение значения для одного поля одной структуры приводит к изменению значения поля уже другой структуры. 

В чем ошибка? smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)