Hi Rene, I have some more information on my problem. As I explained, I put a gObjectTable->Print() inside the loop in which the operator ``new'' is called: >-------------------------------------------------< > for (h=0; h<fNFrag; h++) > { > cout<<"h = "<<h<<endl; > fTCDrawer = new (Drawer[h]) TC_Drawer(); > printf("Pointer Drawer = %x\n", Drawer[h]); > printf("Pointer fTCDrawer = %x\n", fTCDrawer); > fTCDrawer = (TC_Drawer*)Drawer[h]; > printf("Pointer fTCDrawer = %x\n", fTCDrawer); > Fill_Drawer (Fragment[h], fTCDrawer); > if (h == 5) gObjectTable->Print(); > } > >--------------------------------------------------< The news is that I check more accurately the root answer. If the program works correctly I can one TC_Drawer istance, but I gain the following error messages Error in <TObjectTable::UpdateInstCount>: oops 0x088681e8 Error in <TObjectTable::UpdateInstCount>: oops 0x08868be8 Error in <TObjectTable::UpdateInstCount>: oops 0x0886a6d0 Error in <TObjectTable::UpdateInstCount>: oops 0x0886c510 Error in <TObjectTable::UpdateInstCount>: oops 0x0886e1f8 These are exactly exadecimal value of pointers printed in loop. And they are five, as more as the missing istances. If the program crashes the error messages are six, as expected after the previous behaviour: Error in <TObjectTable::UpdateInstCount>: oops 0x0887ff48 Error in <TObjectTable::UpdateInstCount>: oops 0x0886bbe0 Error in <TObjectTable::UpdateInstCount>: oops 0x0886b028 Error in <TObjectTable::UpdateInstCount>: oops 0x08875f80 Error in <TObjectTable::UpdateInstCount>: oops 0x08867e58 Error in <TObjectTable::UpdateInstCount>: oops 0x08869818 Something is going bad with memory, but what? What's more, in the first case TTree seems to be correctly build up and filled. But now it's better if I try to check it. Cheers, Paolo Adragna
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET