writing files to disk, getting <CustomReAlloc2>: passed oldsize 64, should be 393225

From: George Locke <georgelocke.roottalk_at_gmail.com>
Date: Tue, 12 Dec 2006 11:06:31 -0500


Hi,

running 5.13/05 compiled from source using MSVC 8 on windows 2000. I am compiling this code in MSVC 8.

I'm getting some errors that are contingent on the instantiation of a class.

here's the error

<CustomReAlloc2>: passed oldsize 64, should be 393225 Fatal in <CustomReAlloc2>: unreasonable size (393225) aborting

The code follows. If the "CRASH_ME" line executes, then the code crashes at the first Write() command (after printing "chan 0 writing"). The code will execute if you comment out the writing part, or if you comment out the crash me line, but together they cause problems...

here's the code

"
// root includes
#include "TH1I.h"
#include "TFile.h"
#include "TClonesArray.h"

// class headers
#include "Camac1.h"

#define CRASH_ME 1
#define NUMCHAN 8

/*

        Prototypes
*/
void PHA(short nADC, short nLAM, int nPoints, char histoName[]); // minimum save histograms function

int main(int argc, char **argv) {

	short nADC = 5;
	short nLAM = 5;
	int nPoints = 20;
	char histoName[] = "test histograms";

	PHA(nADC,nLAM,nPoints,histoName);
	printf("exited PHA\n\n");
	return 0;

}

void PHA(short nADC, short nLAM, int nPoints, char histoName[]) {

	// Set constants
	const int HIST_SIZE = 256;
	/*
		Create Histograms
	*/
	TClonesArray spectra("TH1I", 8);
	
	int chan;
	char name[50];
	char title[50];
	for (chan=0; chan<NUMCHAN; chan++) {
		sprintf_s(name, "%s %d",histoName, chan);
		sprintf_s(title, "%s %d",histoName, chan);
		new(spectra[chan]) TH1I(name,title,HIST_SIZE,0,HIST_SIZE);
		printf("\t after%d\n",chan);
	}
	
	/*
		Connect To CAMAC
	*/
	short int crate = 1; // crate number
	char devname[] = "kpa00"; // refers to the camac interface PCI card


#if CRASH_ME
Camac1 * Camac0 = new Camac1(devname,crate);

#endif
	/*
		save histograms
	*/
	printf("about to write\n");
	TFile * save = new TFile("C:/temp/test2.root","recreate");

	for (chan=0; chan<NUMCHAN; chan++) {
		printf("chan %d writing\n", chan);
		spectra[chan]->Write();
	}
	
	printf("saved all of them\n");
	save->Close();

	printf("this test is now complete\n");
	return;

}

"

here is Camac1.h

"
class Camac1 {
public:

Camac1() {}

Camac1(char *devname, short int crate) { }

~Camac1() {}

private:

};

"

thanks again!

Regards,
George Received on Tue Dec 12 2006 - 17:06:45 MET

This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:32:02 MET