IntPtr to StructArray



  • Hallo Leute,

    ich möchte ein Strutur Array über einen IntPtr füllen. Bisher hab ich
    es so gemacht:

    var data = new T[x];
    
    			int size = Marshal.SizeOf(typeof(T));
    
    			long LongPtr = ptr.ToInt64();
    			for (int i = 0; i < x; i++)
    			{
    				IntPtr pt = new IntPtr(LongPtr);
    				data[i] = (T)Marshal.PtrToStructure(pt, typeof(T));
    				LongPtr += size;
    			}
    

    Geht das vll. auch eleganter? mit unsafe code ist es nich möglich, weil er die größe der generischen Struct Typ nich kennt!

    grüße


  • Administrator

    LowLevelCopy schrieb:

    Geht das vll. auch eleganter?

    Vielleicht, aber ohne zusätzliche Informationen kann man dir schlecht helfen. Mir fehlen mindestens diese Informationen:
    - Wie kommst du an den IntPtr?
    - Wie sieht die Struktur aus?
    - Was ist der Kontext? Wieso verwendest du Marshal?

    Grüssli


Anmelden zum Antworten