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


von Leonhard (Gast)


Lesenswert?

Hi, in einer C# Anwendung soll ein Teil vom Puffer in einen anderen 
Puffer kopiert werden.
1
            byte[] Buffer1 = new byte[100];
2
            byte[] Buffer2 = new byte[13];
3
4
            Buffer2[0] = 0;
5
            Buffer2[1] = 4;
6
            Buffer2[2] = 2;
7
8
            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?

von Leonhard (Gast)


Lesenswert?

Ich habe den Fehler gefunden.

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

von Peter II (Gast)


Lesenswert?

Buffer2 ist doch nur 13 Zeichen lang und 13+3 ist mehr als 13.

von JensM (Gast)


Lesenswert?

Du greifst u.a. auf Elemente 13, 14 und 15 von Buffer2 zu.

Gruß JensM

von Frank (Gast)


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?

von C# (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.