Hi everybody, I have quite a strange problem: in class CONFIG I have: config.h: *************** private: Float_t m_delta[4][4]; public: Float_t * delta(int dset); config.C: **************** m_delta[0][0] = 0.07; m_delta[0][1] = 0.06; m_delta[0][2] = 0.05; m_delta[0][3] = 0.05; a.s.o. Float_t * config::delta(Int_t dset) { return m_delta[dset];} where m_delta[0] for example is a pointer on the four Float_t's m_delta[0][0-3] ******************************************************* in the CALCULATE class I have: calculate.h: ******************* Float_t * m_delta; and in calculate.C: ************* config configobj; m_delta = configobj.delta(0); So far m_delta should be a pointer on 4 Float_t's, namely: m_delta[0][0-3] which were defined in conifg.C. ******************************************************** now I also have a printvalues member function in class CALCULATE. the code in MAIN program main.C is the following: calculateobj.printvalues(); cout << "GetEntries" << endl; fChain->GetEntry(jentry); calculateobj.printvalues(); where fChain is a private data member of the MAIN class (which also has all the ntuple variables as usual (from setMakeClass)). if i load main.C (not compiling) the output is: m_delta[0] = 0.07 m_delta[1] = 0.06 m_delta[2] = 0.05 m_delta[3] = 0.05 // CORRECT GetEntries m_delta[0] = 9.3887e-44 m_delta[1] = 2.71071e-33 m_delta[2] = nan m_delta[3] = 2.7111e-33 // ????????????????????????? ???????????????????????? how can fChain->GetEntry(jentry); change the memory where the pointers m_delta[0-3] point to (which are private data members of another class, namely CALCULATE) or is it wrong to assume that array[0] is a pointer when the array is defined as array[4][4] (like array1 is a pointer on array1[27], what I also use and it works ...) Please help Thanks in advance Andi Wildauer
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET