Byte[] byteArray = new Byte[4096]; ->Problem: Es werden immer nur 1024 Byte angelegt



  • Hallo zusammen,

    ich arbeite mich gerade in C# ein (c# 2008 Express Edition) und habe mit dieser Array Deklaration ein Problem:

    Byte[] byteArray = new Byte[4096];
    

    Im Beobachten -Fenster sehe ich das das Array "byteArray" nur mit 1024 Bytes angelegt worden ist.
    Kann mir jemand erklären, warm das so ist?

    Bei einem Int-Array wird die Größe richtig angelegt:

    Int[] IntArray = new Int[4096];
    

    Kann mir jemand helfen?



  • Siehst Du das direkt nach dem anlegen oder hat die SW vllt schon am ByteArray gefummelt ? Was gibt byteArray.Length direkt nach dem new aus ?



  • Das war ein guter Tipp.
    Direkt nach dem Anlegen hat das Array die richtige Größe.
    Ich übergebe dann dieses Array einer Methode. Danach hat das Array laut
    Beobachtenfester nur noch 1024 Byte.

    Das werde ich jetzt untersuchen.



  • Ich habe das Problem gefunden:

    Die aufgerufene Methode hat ebenfalls ein Array of Byte deklariert (Größe 1024).
    Nach Beendigung der Methode wurde dieses Array dem übergebenen Array zugewiesen. Dann hatte dieses ebenfalls 1024 Byte. Das war das Problem.

    Danke für die Hilfe.



  • mathab schrieb:

    Die aufgerufene Methode hat ebenfalls ein Array of Byte deklariert (Größe 1024).
    Nach Beendigung der Methode wurde dieses Array dem übergebenen Array zugewiesen. Dann hatte dieses ebenfalls 1024 Byte.

    Nein. Es gibt dann nurmehr ein Array, nämlich das was in der Methode angefordert wurde.
    Die Grösse eises Arrays kann man nichtmehr verändern nachdem man es angelegt hat. Man kann nur eine bestehende Referenz auf ein neues Array "verbiegen".


Anmelden zum Antworten