--- trunk/gadget/grower.cc 2015/04/30 17:32:47 4 +++ trunk/gadget/grower.cc 2015/05/10 12:04:01 5 @@ -107,23 +107,29 @@ dummyfphi.resize(len, 0.0); lgrowth = new Matrix[noareas]; wgrowth = new Matrix[noareas]; - for (i = 0; i < noareas; i++) { - lgrowth[i] = *new Matrix(maxlengthgroupgrowth + 1, otherlen, 0.0); - wgrowth[i] = *new Matrix(maxlengthgroupgrowth + 1, otherlen, 0.0); + lgrowth[i].Initialize(maxlengthgroupgrowth + 1, otherlen, 0.0); + wgrowth[i].Initialize(maxlengthgroupgrowth + 1, otherlen, 0.0); +// lgrowth[i] = new Matrix(maxlengthgroupgrowth + 1, otherlen, 0.0); +// wgrowth[i] = new Matrix(maxlengthgroupgrowth + 1, otherlen, 0.0); } } Grower::~Grower() { int i; - int size = sizeof(lgrowth)/sizeof(lgrowth[0]); - for (i = 0; i < size; i++) { - delete &lgrowth[i]; - delete &wgrowth[i]; - } + //int size = sizeof(lgrowth)/sizeof(lgrowth[0]); + int size = areas.Size(); +// for (i = 0; i < size; i++) { +// delete (*lgrowth)[i]; +// delete (*wgrowth)[i]; +// } + delete[] lgrowth; + delete[] wgrowth; delete CI; delete LgrpDiv; delete growthcalc; + if (vector_OK != 0) + delete[] meanlength_vectorPow; } void Grower::Print(ofstream& outfile) const { @@ -207,6 +213,11 @@ for (i = 0; i < LgrpDiv->numLengthGroups(); i++) numGrow[area][i].setToZero(); } + if (vector_OK != 0) + { + delete[] meanlength_vectorPow; + vector_OK = 0; + } switch (functionnumber) { case 1: