Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Mehrdimensionales Array kopieren

  1. #1
    Sharpie
    Gast

    Question Mehrdimensionales Array kopieren

    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?

    Code:
    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];
    		}
    	}
    }
    Geändert von Sharpie (30-06-2008 um 13:08 Uhr)

  2. #2
    Registrierter Benutzer Avatar von Berufspenner
    Registriert seit
    30.03.2002
    Ort
    Hamburg
    Beiträge
    567
    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.
    C und C++

  3. #3
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    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,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  4. #4
    Sharpie
    Gast

    Thumbs up

    Ja, das war es vielen Dank!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •