PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrdimensionales Array kopieren



Sharpie
30-06-2008, 11:19
Hallo,

wenn ich versuche ein Mehrdimensionales Array zu kopieren unterbricht das Programm manchmal mit einer Speicher Verletzung.

Kann mir vielleicht jemand sagen wo bzw. was der Fehler ist?


void myFunction(float* my2DArray, int row, int size){
//Bei my2DArray handelt es sich um ein sequenziell
//allokiertes zweidimensionales Array

int i=0, j=0;
float* my2DArrayCopy = new float(row * size);

//Array kopieren
for(i=0; i<row; i++)
{
for (j=0; j<size; j++){
my2DArrayCopy[size*i+j]=my2DArray[size*i+j];
}
}

//...

//Array Kopie einfügen
for(i=0; i<row; i++)
{
for(j=0; j<size; j++){
my2DArray[size*i+j] = my2DArrayCopy[size*i+j];
}
}
}

Berufspenner
30-06-2008, 12:17
Willst du denn unbedingt C++ konform sein oder willst du allgemein eine Lösung zum Kopieren von Matrizen haben? Denn wenn es eher letzteres wäre, dann würde ich mit nem Doppelpointer und calloc() arbeiten.

anda_skoa
30-06-2008, 12:29
Falsche Klammern beim new float

Du legst derzeit einen float mit dem Wert row*size am Heap an, kein Array mit der Länge row * size.

Ciao,
_

Sharpie
01-07-2008, 09:34
Ja, das war es vielen Dank!