Ich mache das unten in einer Schleife mit dims = [1024 768 256]
. Ich möchte eine Gruppe von Blöcken, die von block_iter
(1 bis 16) geladen werden, in einen RAM-Hardware speichern. Der Speicheranruf scheint eine Speicherleckage anzuzeigen. Mache ich etwas falsch?
for (block_iter = 1; block_iter <= num_blocks; block_iter++)
{
//Speicher zur Dateneinlesung zuweisen;
mxArray *B= mxCreateNumericArray(3, dims, mxUINT8_CLASS, mxREAL); // Zeiger auf mxArray
mxArray *in = mxCreateDoubleMatrix(1, 1, mxREAL);
mexCallMATLAB(0, NULL, 0, NULL, "memory");
memcpy(mxGetPr(in), &block_iter, sizeof(double)*1*1);
mexCallMATLAB(1, &B, 1, &in, "data_feeder");
//Funktionsaufruf RAM_FILL
ram_fill(d,B);
//Speicher freigeben;
mxDestroyArray(B);
mxDestroyArray(in);
}
P.S: das Speicherleck beträgt etwa 192 MB pro Schleife, was genau der Menge an Daten im Array B
entspricht.