Announcement

Collapse
No announcement yet.

Problem mit fixed array

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit fixed array

    Wenn ich das richtig verstanden habe, kann man mit dem fixed Schlüsselwort die Größe von Arrays in Strukturen vorgeben. Das erscheint mir sinnvoller als dies mit Attributen zu tun, da ich damit die Arraygröße in einer Konstante hinterlegen kann. Nun habe ich folgendes Problem: Der Complier wehrt sich dagegen mir Zugriff auf das Array zu geben. Folgender Quellcode z.B.:
    Code:
       unsafe struct S
        {
            public fixed int buffer[1];
        }
    
        public class X
        {
            S data = new S();
            public void f()
            {
                unsafe
                {
                    data.buffer[0] = 1;
                    int x = data.buffer[0];
                    Console.WriteLine("Wert im Buffer: " + x);
                }
    
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                X x = new X();
                x.f();
                Console.WriteLine("Bitte Taste drücken");
                Console.ReadKey();
            }
        }
    führt zu der Fehlermeldung: "Sie können keine Puffer fester Größe verwenden, die in nicht festen Ausdrücken enthalten sind. Verwenden Sie die fixed-Anweisung." Ich habe mit fixed schon etwas herumexperimentiert, aber ich denke das ist nicht das eigentliche Problem. Wer weiß, was ich hier falsch mache ?
    Ach übrigens: Wenn ich die Zeile "S data = new S();" in die Funktion f() verschiebe, tritt die Fehlermeldung nicht auf !
    Zuletzt editiert von cairn; 26.11.2007, 15:49.
Working...
X