Dear friends!
I have the following code:
{
// Example 1
TFile *root_file = new TFile("a.root","RECREATE", "file",9);
TTree *tree = new TTree("tree","tree");
root_file->Write();
root_file->Map();
root_file->Print();
root_file->Close(); // Close root file.
delete tree; // here!
delete root_file;
}
produces next output:
TFile Writing Name=a.root Title=file
980427/160834 At:64 N=86 TFile
980427/160835 At:150 N=104 TTree CX = 2.71
980427/160835 At:254 N=90 TFile
980427/160835 At:344 N=54 TFile
TFile: name=a.root, title=file, option=CREATE
******************************************************************************
*Tree :tree : tree *
*Entries : 0 : Total Size = 104 bytes File Size = 104 *
* : : Tree compression factor = 1.00 *
******************************************************************************
*** Break *** segmentation violation
Why "segmenation violation"?
If I remove string "delete tree;" the message
"*** Break *** segmentation violation" disappears.
The following code works well:
{
// Example 2
TFile root_file("a.root","RECREATE", "file",9);
TTree tree("tree","tree");
root_file->Write();
root_file->Map();
root_file->Print();
root_file->Close(); // Close root file.
}
Why code 'Example 1' with new-delete operators is bad?
Thanks in advanced,
Alexander Zvyagin.