Hello Nicolas, I could not reproduce your problem. Simple test program below works without problem. Is there anything I am missing? Thank you Masaharu Goto class a { public: int a; int xsize() { return a; } }; a& g(a& x) { return x; } a x; int f1() { a* ppa[5]; ppa[0] = &x; return g(*ppa[0]).xsize(); } int f2() { a* ppa[5]; ppa[0] = &x; return g(*(ppa[0])).xsize(); } main() { x.a = 1234; printf("%d\n",f1()); printf("%d\n",f2()); } >root >Version 2.23/11 14 January 2000 >CINT/ROOT C/C++ Interpreter version 5.14.25, Nov 25 1999 > >In some method the line: > >return fNx_base*(*fToe[0]).xsize();} > >make a seg violation in the trivial xsize() method >fToe is a ** on some object >fToe and fToe[0] point on correctely constructed objects > >Now if I edit the line to (I think equivalent line): >return fNx_base*(*(fToe[0])).xsize(); >then it works. > >g++ seems to like both of the forms. > > >Here is the end of the trace: >209 Blocktoeplitz::xsize() const{ >210 if (fNy_base>0){ >211 return fNx_base*(*fToe[0]).xsize();} > ># toeplitz.h >76 Uttoeplitz::xsize() const{ >77 return fX_dim;} > > *** Break *** segmentation violation >Root > Function doit() busy flag cleared >Function xsize() busy flag cleared >Function xsize() busy flag cleared >Function show() busy flag cleared > > >-- > Nicolas Produit
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:17 MET