Hi Tommaso, >From your description it is not clear what is going wrong. The first thing you should try is to replace v->UncheckedAt by v->At to make sure you are really reading allocated memory. Now there is no technical different between (strictly speaking): TClonesArray *v = p.GettArray(); And TClonesArray *v; v = p.GettArray(); The difference I guess in that between the last 2 lines you have many other thing going-on that may or may not affect the result (like going out-of-scope, other unrelated memory over-write, etc.). The simpliest is for you to send a very small, complete example that reproduces the problem. Cheers, Philippe. -----Original Message----- From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch] On Behalf Of tommaso chiarusi Sent: Friday, December 17, 2004 7:42 AM To: Root Newsgroup Subject: [ROOT] TClonesArray Dear Rooters, Should it be stange the following? You have a member function GetArray() which yields a pointer to TClonesArray. so, in the scope of some methods: TClonesArray *v = p.GettArray(); Evento &te = *((Evento*) v->UncheckedAt(cont)); It's Ok and the Evento-memory segment does exist and it is filled with right things. While... TClonesArray *v; v = p.GettArray(); Evento &te = *((Evento*) v->UncheckedAt(cont)); It ISN'T ok, and the Evento-memory segment is completely random. What's happening? I need to use the second case, since the TClonesArray pointer v should be a private data member of a class. In particular I should organize such stuff as the following: TClonesArray *v; -> IN THE PRIVATE DATA MEMBER DECLARATION SCOPE v = p.GettArray(); -> IN THE CLASS CONSTRUCTOR DEFINITION Evento &te = *((Evento*) v->UncheckedAt(cont)); IN A MEMBER FUNCTION Maybe I'm forgetting some stupid rule.... Thanks a lot, Tommaso. P.S. System ROOT: Version 4.00/08 9 July 2004 OS: Linux RH-9 gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5) -- ----------------------- Dr. Tommaso Chiarusi Dipartimento di Fisica Universita' di Bologna INFN. Sez. Bologna Tel +39.051.209.5234 Fax +39.051.209.5269 -----------------------
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET