c++ - Memory leak when calculating a determinant of a matrix -


while writing code calculate determinant of simple 3 x 3 matrix, noticed started accumulate memory leaks. i've reduced method following (meaning no longer use algorithm determine size of matrix, "by hand"):

double determinant(double** &m) {     return m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2]) -            m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0]) +            m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]); } 

i can't find problem this, since not allocate memory inside method. if change , return double (return 1.0, example) leak gone. happening here?

edit (more code):

double logmultivariatenormaldensity(unsigned char* &x, unsigned char* &mean, double** &sigma) {     double det = determinant(sigma);     ... } 

which in turn called inside loop

for(unsigned int = 0; < n; i++) {     logmultivariatenormaldensity(_x[i], _mean[i], _sigma[i]) } 

being 2d array, _sigma allocated using malloc (in both dimensions).

memory allocated malloc must freed free. always, small amount of memory.


Comments

Popular posts from this blog

python - No exponential form of the z-axis in matplotlib-3D-plots -

php - Best Light server (Linux + Web server + Database) for Raspberry Pi -

c# - "Newtonsoft.Json.JsonSerializationException unable to find constructor to use for types" error when deserializing class -