Sowas wie memcpy in Java?



  • Hallo Javaianer,
    ich muss an vielen Stellen in meinem Programm ganze int-Arrays und auch andere Arrays kopieren. Gibt es dafür in Java eine vordefinierte Funktion also so wie memcpy in C oder muss ich mir selbst eine schreiben?

    Thx, Mastah 🙂


  • Mod

    System.arraycopy



  • Dank dir 👍 !

    Noch ne Frage: Was ist hier krumm?

    //...
    
    // int[][] inhalt ist Eingangsparameter
    m_inhalt = new Vektor[inhalt.length];
    
    // In der Schleife crasht es komischerweise...
    for(int i = 0; i < inhalt.length; ++i)
        m_inhalt[i].setContent(inhalt[i]);
    
    //...
    
    // setContent von Vektor (sollte kein Problem machen)
    public void setContent(int[] inhalt) {
        m_inhalt = new int[inhalt.length];
        System.arraycopy(inhalt, 0, m_inhalt, 0, inhalt.length);
    }
    

    Der schmeisst immer:

    Exception in thread "main" java.lang.NullPointerException



  • MaSTaH schrieb:

    // int[][] inhalt ist Eingangsparameter
    m_inhalt = new Vektor[inhalt.length];
    
    // In der Schleife crasht es komischerweise...
    for(int i = 0; i < inhalt.length; ++i)
        m_inhalt[i].setContent(inhalt[i]);
    

    m_inhalt[i] == null, jedenfalls seh ich nirgends ein Initialisierung dafür.



  • Habs jetzt so:

    m_content = new Vektor[content.length];
    		for(int i = 0; i < content.length; ++i) {
    			m_content[i] = new Vektor();
    			m_content[i].setContent(content[i]);
    		}
    

    Jetzt kommt:

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2

    Warum, ich schreib doch nirgendwo drüber.



  • Hab mal nachgeguckt. content.length ist 2. Den Bereich überschreite ich ja nicht mit der Schleife. Woran kann das sonst liegen?



  • Sorry, blöder Fehler meinerseits. Alles erledigt. 🙂


Anmelden zum Antworten