Я имею дело с недоуменным вопросомC++ - Как освободить память на массиве
Прежде всего, я должен открыть некоторые файлы и сделать некоторые операции. для этого я должен определить некоторые массивы. То, что я хотел бы сделать, - удалить массив перед тем, как перейти к следующему файлу. Я знаю, что я мог бы динамически определять массивы, но
- Я не знаю, априори размер
- я советовал не связываться с динамическим распределением
Так есть способ «стереть» не динамически определенный массив?
пример кода является следующий
void Analyze(unsigned int first_run, unsigned int last_run, unsigned int last_segment){
TFile *fin = new TFile(TString::Format("HPGe_%d_%d_%d.root", first_run, last_run, last_segment));
for (int segm = 2; segm<=3; segm++){//loop for different files
std::vector<double> left;
std::vector<double> right;
std::vector<int> amplitude;
Function_that_fill_arrays_PUSHBACK(left, right, amplitude);
for (int i=0; i<left.size(); i++){
if (right[i]<=0.01){
cout << "Left side : " << left[i] << ", Right side : " << right[i] << ", Amplitude : " << amplitude[i] << endl;
}
}
DELETE ARRAYS HERE
}// end of loop over files
}//end of function
Любая идея о том, как может быть достигнуто что-то подобное?
Используйте векторы и позвольте им выйти из сферы действия, как вы уже делаете с векторами 'left',' right' и 'amplitude. –
Вы понимаете, что 'Function_that_fill_arrays_PUSHBACK' работает на векторах, которые автоматически удаляют содержимое, верно? –
@JoachimPileborg Что значит? – Thanos