mikrocontroller.net

Forum: PC-Programmierung C#: Fehler bei Array.Copy Methode


Autor: Leonhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, in einer C# Anwendung soll ein Teil vom Puffer in einen anderen 
Puffer kopiert werden.

            byte[] Buffer1 = new byte[100];
            byte[] Buffer2 = new byte[13];

            Buffer2[0] = 0;
            Buffer2[1] = 4;
            Buffer2[2] = 2;

            Array.Copy(Buffer1, 0, Buffer2, 3, 13);

Das Zielarray ist nicht lang genug. Überprüfen Sie destIndex, die Länge 
und die Untergrenze des Arrays.

Was mache ich falsch?

Autor: Leonhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den Fehler gefunden.

Korrektur:
Array.Copy(Buffer1, 0, Buffer2, 3, 10);

Autor: Peter II (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Buffer2 ist doch nur 13 Zeichen lang und 13+3 ist mehr als 13.

Autor: JensM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du greifst u.a. auf Elemente 13, 14 und 15 von Buffer2 zu.

Gruß JensM

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steht doch in der Meldung schon. Du kopierst an die Stelle 3 13 
Elemente. Wo willst du denn das 13. zu kopierende Element ablegen?

Genau, an Stelle 15.

Und wie groß ist das Array?

Autor: C# (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schrift berichtet:

public static void Copy(
  Array sourceArray,
  int sourceIndex,
  Array destinationArray,
  int destinationIndex,
  int length
)


3 + 13 = 16

> byte[] Buffer2 = new byte[13];
du hast aber nur 13 Bytes

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.