casten von array in multi-dim array



  • Hallo Leute,

    angenommen ich ich habe ein Array

    int a[] = { 1 , 2 , 3 , 4 }
    

    und möchte dieses in ein 2*2 Array casten:

    int b[2][2] = { {1 , 2 } ,  {3 , 4} }
    

    gibt es dafür eine Möglichkeit in C?

    So etwas wie

    int a[] = { 1 , 2 ,  3 , 4 };
      int b[2][2] = a;
    

    funktioniert leider nicht.

    Danke



  • int a[] = { 1 , 2 , 3 , 4 };
    int (*b)[2] = (int(*)[2])a;
    

    Das Casten von Zeigern ist hochdiffizil, d.h. nur was für Profis.
    Ich rate davon ab, sowas prinzipiell einzusetzen.



  • Vielen Dank.

    Kannst du noch kurz erklären, was

    (int(*)[2])
    

    für ein Konstrukt ist?
    Erinnert mich etwas an einen Funktion-Pointer, ist aber keiner oder?

    Grüße


  • Mod

    Das ist ein Zeiger auf ein Array von zwei ints.
    www.cdecl.org


Log in to reply