Diese Dinger verursachen am laufenden Band Probleme. Ich habe ja durchaus Spaß daran, wann man auch mal wirklich den eigenen Kopf benutzen muss beim Programmieren, aber Zeiger sind schon eine gewisse Herausforderung.

Edit: Es lag nicht an den Zeigern, sondern daran, dass ich ein paar kleine Fehler in meinem Code hatte, die ich übersehen habe.

  • Flipper@feddit.org
    link
    fedilink
    arrow-up
    18
    ·
    7 days ago

    Wenn es nur eine Sprache gäbe, mit der Pointer effizient weg abstrahiert werden, UTF-8 direkt unterstützt wird und die direkt ein Bau und Bibliotheken Management System aus diesem Jahrtausend mit bringt. Ideal wäre natürlich wenn das genauso zu Maschinencode übersetzt wird und damit gleich schnell wie C läuft.

    Ist natürlich vollkommen unmöglich, aber man darf träumen.

    • Gladaed@feddit.org
      link
      fedilink
      arrow-up
      1
      ·
      5 days ago

      Zeiger wegabstrahieren heißt Gott spielen. Wer erwartet c++ oder irgendeine andere Sprache löst das Problem, dass Daten im Speicher verteilt sind ist naive. Wer ein Haus in der Stadt kauft kann nicht einfach ein 400m2 Garten DLC herrunterladen.

    • excral@feddit.org
      link
      fedilink
      arrow-up
      8
      ·
      7 days ago

      Fairer Weise, wenn man Zeiger nicht versteht, wird man mit dem Verleih-Prüfer auch nicht klar kommen. Das wird dann auch nur maximal frustrierend sein. Für einen blutigen Anfänger, der sich noch mit Zeigern abmüht ist der gelegentliche Segfault sicher angenehmer, als bei jedem kleinen Fehler, der eventuell aufgrund glücklicher Umstände nicht mal zu Problemen geführt hätte, in Kompilierfehler zu rennen. Als Anfänger hätte ich die wichtige Arbeit des Verleih-Prüfers sicher noch nicht zu schätzen gewusst und wahrscheinlich eher als Gängelung wahrgenommen.

      Das gesagt, ich liebe Rost und grade der maschinennahen Programmierung ist es das beste, was ihr seit Ewigkeiten passiert ist. Im

      • Flipper@feddit.org
        link
        fedilink
        arrow-up
        1
        ·
        7 days ago

        Das gute ist, das der Übersetzter dir hilft statt in C einfach Dinge wegzuoptimieren. Er erklärt warum was nicht erlaubt ist.

        Was du prüfst ob der Zeiger null ist. Darf er nicht sein, weg damit. Viel Spaß mit dem Speicherfehler. 👋

        • al4s@feddit.org
          link
          fedilink
          arrow-up
          2
          ·
          6 days ago

          Kleiner Trick aus der Industrie, einfach die Entkäfer Version ausliefern. Dann funktioniert sogar mein Code!

          • Flipper@feddit.org
            link
            fedilink
            arrow-up
            2
            ·
            6 days ago

            Bei uns wird ein Programm mit MS C Compiler 98 übersetzt, weil mit neueren Compiler das Programm nicht mehr läuft.

            Denn es wird mit volatile Thread Synchronisierung betrieben. 🥴

      • Randelung@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        7 days ago

        Ich weiss heute noch nicht, wie man eine bidirektionale verkettete Liste baut (in sicherem Rost meine ich nicht möglich) oder Referenzen von anderen Objekten in einem Strukt korrekt Lebenszeit annotiert.

        • PlexSheep@infosec.pub
          link
          fedilink
          arrow-up
          1
          ·
          6 days ago

          Geht halt mit Pointern. Hab ich schon gemacht. Wo es wirklich spannend wird sind intrinsische verkettete listen (also die Listen Heads sind Teil vom struct, nicht das struct selbst).

          Problem ist, dass du immer garantieren musst, dass sich die Addresse der Listenobjekte nicht ändert. Dafür gibt’s Pin, Box, und Versprechen auf Ehre.

        • Ephera@lemmy.ml
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 days ago

          Für die bidirektionale Liste muss man, soweit ich weiß, mit Rc auf der einen Seite und rc::Weak auf der anderen Seite arbeiten.

          Fairerweise muss ich aber sagen, dass ich es noch nie ausprobiert habe. Sowas braucht man ja doch eher selten, und wenn man es braucht, will man oftmals einfach VecDeque.

    • safesyrup@feddit.org
      link
      fedilink
      English
      arrow-up
      7
      ·
      7 days ago

      Dachte gerade du hättest das „u“ mit einem „o“ verwechselt. Dann merkte ich, ich liege falsch

    • macniel@feddit.org
      link
      fedilink
      arrow-up
      2
      ·
      7 days ago

      Kommt das snobbische verhalten die rostige Entwicklys im Kernel an den Tag legen mit der Sprache gratis dazu?