Hello,
I use ROOT version 2.25/03, using MSVC++ 6.0 under WinNT. The program below
runs fine
in principle. If I throw in a couple of events, with Tuple::Addevent, I can
plot them
from the n-tuple that is produced. If I add more and more files to the
project, without
changing main.cpp at all, none of the extra files using ROOT related code,
the program will fail in Tuple::CloseTuple, in the line p_file->Write().
The message I get is then:
--------------------------------------------------------------------
<CustomRealloc2>: passed oldsize 1032, should be 18415747
Fatal in <CustomReAlloc2>: unreasonable size (18415747)
aborting
Warning in <TWinNTSystem::StackTrace>: this method must be overriden!
--------------------------------------------------------------------
I know that linking root into C++ programs sometimes involves subtleties
that are
not present in macros, so I probably have overlooked something simple. I
want to use
the buffering and compression facilities of n-tuples in my program, however.
I hope you can tell from this information what goes wrong.
Thanks,
Marc
--------------------- main.cpp -----------------------------------
#include "D:/code/libs/neuronlib/tuple.h"
int main()
{
Tuple tup;
tup.OpenTuple("bla");
tup.CloseTuple();
return 0;
}
------------------------ tuple.h -----------------------------------
class Tuple {
public:
Tuple();
bool OpenTuple(const char*p);
void CloseTuple();
void AddEvent( int, int, float);
};
------------------------ tuple.cpp ---------------------------------------
#include "tuple.h"
#include <TRoot.h>
#include <TNtuple.h>
#include <TFile.h>
TROOT root("root","tup");
TFile* p_file;
TNtuple* p_tuple;
Tuple::Tuple()
{
}
bool Tuple::OpenTuple(const char* p)
{
p_file = new TFile(p,"RECREATE","spike simulation run");
p_tuple = new TNtuple("ntuple","events","in:out:time");
return true;
}
void Tuple::CloseTuple()
{
p_file->Write();
p_file->Close();
delete p_file;
}
void Tuple::AddEvent( int i, int j, float f)
{
p_tuple->Fill((float)i,(float)j,f);
}
----------------------------------------------------------------------------
----
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:36 MET