Hi, The problem seems to be that gcc/linux does like to allocate a huge amount of memory of the stack. You have: struct GammaModule { Double_t tc99Count[64][1024]; Double_t tc99Center[64]; Double_t co57Count[64][1024]; Double_t co57Center[64]; Double_t ebin[64]; Double_t tc99Energy[64][1024]; }; void calibrateEnergy(){ GammaModule module[16]; .... Each GammaModule is already 1.5Mb. So you are trying to allocate on the heap 24Mb! This cause the gcc/linux system I tried, to core dump the process. The simple work around is to use: GammaModule *module = new GammaModule[16]; (and add delete module at the end of the function). Cheers, Philippe. -----Original Message----- From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of WSChoong@lbl.gov Sent: Tuesday, October 23, 2001 2:02 AM To: roottalk@pcroot.cern.ch Subject: [ROOT] possible bug in cint? I am using version 3.02.02. Attached is a C++ file and a data file which is read by one of the functions. I ran the file in root using ".x calibrateEnergy.C()". The function "readModuleSpectrum" read the data file correctly if the for loop in "calibrateEnergy" is commented out. However once the for loop is uncommented, the condition for the while loop in "readModuleSpectrum" is always true even though the condition is false. Woon-Seng Choong
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:03 MET