C-Programmierung #28: Einfach verkettete Listen

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ม.ค. 2025

ความคิดเห็น • 4

  • @MrBagpipe2222
    @MrBagpipe2222 2 ปีที่แล้ว +1

    Hab es eins zu eins so abgetippt (verwende ATOM zum Programmschreiben und Debian als Konsole auf Windows 10 64Bit), leider meckert der schon bei der Funktion "showList",
    20:9: "warning: assignment `listElement *` from incompatible pointer type `struct listElement *` [-Wincompatible-pointer-types]"
    20 | p = p->next;
    | ^
    Vielleicht ne Idee woran das liegen könnte?

    • @automationTutorials
      @automationTutorials  2 ปีที่แล้ว +1

      Scheinbar unterscheidet dein Compiler streng zwischen den Datentypen 'struct listElement' und 'listElement'. Ändere doch mal die Deklaration der Struktur wie folgt:
      typedef struct listElement listElement;
      struct listElement {
      listElement* next;
      DATA d;
      };

  • @derkeiler2573
    @derkeiler2573 3 ปีที่แล้ว +1

    Frage zu dem Pointer auf Pointer: Warum muss der *pointer auf pointer* (z.B. **ptrptr) vom selben Datentyp sein, wie der pointer (*ptr) auf den er zeigt?

    • @automationTutorials
      @automationTutorials  3 ปีที่แล้ว +2

      Super Frage! Die Kurzantwort auf deine Frage: Es müsste nicht derselbe Datentyp sein (sondern könnte z.B. auch der void-Pointer sein).
      Der Datentyp des Pointers ist wichtig bei der Dereferenzierung (siehe auch hier: th-cam.com/video/w72SblkZ0M8/w-d-xo.html). Bei "Doppelpointern" ist die Dereferenzierung wieder eine Adresse, die jedem anderen typisierten Pointer zugewiesen werden kann.