Jano Hruby <fly@pobox.sk> writes: > Hello, > I have problem with this small program in loop. > If I comment in program exam.C 2 lines: > // else > // TH1F *hcham[p1] = (TH1F*)gDirectory->FindObject(hname[p1]); > program working, but every loop: Warning in <TH1::Build>: Replacing > existing histogram: x1 .... > > If I uncomment this 2 lines: > root [0].x exam.C > Error: Non-static-const variable in array dimension ..... > > > Please help me, thanks > Jan > > > listing exam.C > void exam() > { > > if ( !(gROOT->GetListOfCanvases()->FindObject("c1")) ) > { > c1 = new TCanvas("c1",""); > c1->cd(); > } > > const UShort_t num=4; > char *hname[num]={"x1","y1","x2","y2"}; > > TH1F *hcham[num]; > > for (UShort_t p1=0; p1<num; p1++) > if( !(c1->GetPrimitive(hname[p1])) ) > { > hcham[p1] = new TH1F(hname[p1],"",10,0,10); > hcham[p1]->SetBit(kCanDelete); > } > else > TH1F *hcham[p1] = (TH1F*)gDirectory->FindObject(hname[p1]); > > // filling histo > // for (UShort_t p2; p2 <num; p2++) > // hcham[p2]->Fill(.....); > // draw histo > // for (UShort_t p3; p3 <num; p3++) > // hcham[p3]->Draw(.....); > } > Hi Jano, the error Non-static ... comes from the fact that there is an invalid declaration of TH1F *hcham[p1] inside the else statement. The statement should be just else hcham[p1] = (TH1F*)gDirectory->FindObject(hname[p1]); you have a *hchan[num] declaration above. Also p2 and p3 should be given an initial value. cheers Jiri
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET