Hallo Gurus,
Ich habe eine Anwendung die sich Pixelinformationen aus einem Bild ausliest. Die Pixelwerte werden in ein Array abgelegt. Da verschiedene Bildformate eingelesen werden, muss ich das ganze dynamisch halten. Das mache ich natuerlich mit dem new Operator. Loeschen tue ich den Heap-Speicherbereich wieder mit delete[].
Nur wie sieht es aus wenn ich mein Array an verschiedene Funktionen uebergeben moechte? Wie verhaelt es sich mit Funktionen, die das Array als Argument haben, mit ihnen was machen und es wieder zurueck geben muessen.
Natuerlich ist es nicht das Array das ich uebergebe sondern ein Pointer der auf die erste Stelle des Arrays verweist.
Mein Programm, loest nach einer Weile immer eine Exception "Out of Memory" aus. Da mach ich wohl etwas falsch mit der Speicherverwaltung. Nur was?
FindROI(...) durchlauft eine Schleife und wird je nach Anzahl der Bilder entsprechend of aufgerufen. Die Aufruferfunktion loescht die Pixelarrays auch entsprechend.
Haenge nun schon ein Weilchen fast und fuer eine eine Erleuchtung sehr dankbar.
Gruss Rainer
Ich habe eine Anwendung die sich Pixelinformationen aus einem Bild ausliest. Die Pixelwerte werden in ein Array abgelegt. Da verschiedene Bildformate eingelesen werden, muss ich das ganze dynamisch halten. Das mache ich natuerlich mit dem new Operator. Loeschen tue ich den Heap-Speicherbereich wieder mit delete[].
Nur wie sieht es aus wenn ich mein Array an verschiedene Funktionen uebergeben moechte? Wie verhaelt es sich mit Funktionen, die das Array als Argument haben, mit ihnen was machen und es wieder zurueck geben muessen.
Natuerlich ist es nicht das Array das ich uebergebe sondern ein Pointer der auf die erste Stelle des Arrays verweist.
Mein Programm, loest nach einer Weile immer eine Exception "Out of Memory" aus. Da mach ich wohl etwas falsch mit der Speicherverwaltung. Nur was?
Code:
void FindROI(uchar* pixData,int width,int height)
{
pixData=new uchar[width*height];
pixData=DoSomething(pixData,width,height);
pixData=DoSomethingMore(pixData,width,height);
.
.
.
delete[] pixData;
}
Haenge nun schon ein Weilchen fast und fuer eine eine Erleuchtung sehr dankbar.
Gruss Rainer