Hi Bill, > Should the TObjArray be deleted at the end of the loop? Or should I > not use the "new" operator to create it? the second is correct. But content of TObjArray will not be deleted. Victor William Hanlon wrote: > > Hi, > > This is more of a C++ question I suppose. In a loop how should objects be > created? Since C++ allows variable initialization anywhere to allow > limited variable scope, does the same apply to objects created using > the "new" operator? > > For example I do something like the following in one of my programs: > > while(...) > { > > // Fill histograms with data > . > . > . > > // TObjArray will hold histograms sorted by scattering angle. > TObjArray *mlist = new TObjArray(nhit); > TIter next(mlist); > for (Int_t i = 0; i < nhit; i++) > mlist->Add(mir[sindex[i]]); > > // prepare the canvas for drawing > c1->Clear(); > c1->Divide(nhit, 0); > c1->Draw(); > > TH1F *temp; > Int_t count = 0; > while (temp = (TH1F*)next()) > { > c1->cd(++count); > temp->Draw(); > } > c1->Update(); > > // continue looping > > } > > Should the TObjArray be deleted at the end of the loop? Or should I > not use the "new" operator to create it? > > Thanks, > Bill -- Victor M. Perevoztchikov perev@bnl.gov perev@vxcern.cern.ch Brookhaven National Laboratory MS 510A PO Box 5000 Upton NY 11973-5000 tel office : 631-344-7894; fax 631-344-4206; home 631-345-2690
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:02 MET