Anzeige:
Ergebnis 1 bis 3 von 3

Thema: C: Typ von Int[][]

  1. #1
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549

    C: Typ von Int[][]

    Code:
    int field[3][3];
    int* f = field;
    da meckert bei mir gcc -Wall. Was von Zuweisung von inkompatiblem Pointertyp. Funktionieren tuts natürlich trotzdem, aber irgendwie störts.

    Code:
    int* f = (int*)field;
    bringt -Wall zum schweigen. Aber irgendwie ist mir die Sache noch nicht ganz klar. Ist nicht field vom Typ int*?

    MfG Peschmä, der heute damit (erfolglos) drei Informatikassistenten beschäftigt hat
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  2. #2
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Die Regel dafür ist immer die gleiche: ein Array degeneriert in einen Zeiger auf das erste Element (Achtung die Regel wird nicht rekursiv angewendet).
    Hier ist field ein Array von "Arrays von 3 int".Also brauchst du einen Zeiger auf ein Array von 3 int.
    Code:
    int field[3][3];
    int (*p)[3] = field;
    Wenn du deinen int *p; behalten willst
    Code:
    int field[3][3];
    int *p = &field[0][0];

  3. #3
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Ah. Ok. Alles klar. Das heisst ein
    Code:
    int *p = field[0];
    ist auch korrekt.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •