Dear Root Masters,
I have the following problem: I want to build an array of histograms and
use this array as a parameter of a function. Well, if I fix the size of
the array before passing it to the function:
void main(void) {
TH1F **histo; // I know this can be done
histo = malloc(sizeof(TH1F*)*Size); // just by TH1F *histo[Size]
my_fill(histo);
}
my_fill(TH1F** htemp) {
for (int i=0; i<Size; i++)
htemp = new TH1F();
}
Then it works perfectly. But my problem is that I want my subroutine to
allocate the memory because only within the subroutine I will know what
"Size" show be.
I tried to do the following:
void main(void) {
TH1F **histo;
my_fill(histo);
}
my_fill(TH1F** htemp) {
htemp = malloc(sizeof(TH1F*)*Size);
for (int i=0; i<Size; i++)
htemp = new TH1F();
}
But it doesn't work. Any tips of how to do this? I have tried to do
some simple tests and I found out that the root behaviour is diferent from
the standard c++, maybe this is the problem, I don't know:
root [0] double x = 3
root [1] &x
Error: reference type x with no initialization FILE:/tmp/fileVv6eIH_cint LINE:1
Error: x already declared as different type FILE:/tmp/fileVv6eIH_cint LINE:1
*** Interpreter error recovered ***
root [2]
Shouldn't I've got the address of "x" in the code above?
[]'s
Henrique
****************************************
State University at Campinas - BRASIL
"Gleb Wathagin" Physics Institute
Department of Cosmic Rays and Chronology
Henrique Barbosa The Pierre Auger
PhD Student Observatory
****************************************
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:21 MET