falscherptr problem



  • +fricky schrieb:

    ^^und falls das keine übung für structs und pointer-auf-structs,

    Glaube ich schon, daher...

    +fricky schrieb:

    nimm 'ne richtige datenbank dafür, mySQL oder sowas.

    Nö, lieber erstmal nicht. Denn wenn das erstmal alles steht, hat er einiges kapiert. Dann ist man schlauer und kann immer noch über eine "richtige" Lösung mit 'ner Datenbank nachdenken. 🕶



  • jau die for schleife ist schon korrigiert... natürlich hab ich mich verschrieben.

    also deine Tipps sind grundlägend natürlich total richtig. "Problem" an der Sache ist das es vorgaben vom Ausbilder sind. also Wenn da jetzt etwas nicht soooo prickelnd ist ... soll es so bleiben weil es meinem Ausbilder grundsätzlich um die Arbeit mit Ptr geht. Ich soll das halt lernen ... übern ... das Programm war ja schon fertig von mir geschrieben... als zusatzübung wurde jetzt noch die Struct Artikel mit der enthaltenen Union gemacht.

    also tut mir leid wenn ich 2 Beiträge später immer noch den "unschönen" Code vorzeigen muss aber ich lasse ihn jetzt erstmal so wie er ist und versuche nur weiter mit Ptr was zu machen (Wie auch meine Frage war wo denn jetzt mein Fehler liegt das er mir schlechterptr anzeigt... bzw das ich auf einen fremden Speicher zugreife).

    also komme ich nochmal zurück und sage schonmal Danke natürlich nehme ich mir die Tipps zu herzen :)!

    wenn ich es also schaffe den ptr vernünftig auf einen Speicher zu deklarieren dürfte kein fehler kommen das er auf einen Fremden Speicher zugreift?



  • Virokams schrieb:

    wenn ich es also schaffe den ptr vernünftig auf einen Speicher zu deklarieren dürfte kein fehler kommen das er auf einen Fremden Speicher zugreift?

    Jo! Entweder, du weist dem Pointer eine gültige Adresse zu (von einer Variablen, die bereits existiert, wie in meinem Beispiel vorhin), oder du forderst mit malloc speicher an, in den du dann schreiben darfst. In letzterem Fall darfst du aber nicht das free vergessen, dass den Speicher wieder freigibt (sonst produzierst du ein Speicherleck).



  • gut soweit verstanden ... zur Syntax:

    union daten *ptrBuch = NULL;

    geht nicht...

    neuerartikel[0].artikeldaten.ptrBuch = NULL;

    hatte ich auch probiert... geht auch nicht...

    hääh? -.-



  • Virokams schrieb:

    union daten *ptrBuch = NULL;
    geht nicht...

    benutze einen richtigen C compiler (z.b. indem du deine files von .cpp in .c umtaufst), dann geht's
    🙂



  • +fricky schrieb:

    Virokams schrieb:

    union daten *ptrBuch = NULL;
    geht nicht...

    benutze einen richtigen C compiler (z.b. indem du deine files von .cpp in .c umtaufst), dann geht's
    🙂

    edit: äääh, achso, in einer struct-definition darfste natürlich auch keine zuweisungen machen, falls du das versuchen solltest.
    🙂



  • nene war jetzt in meiner Methode void artikel_anzeigen() definiert.

    von .cpp in .c macht er bei mir nicht... dann kompiliert er garnicht ?!...

    muss das ? oder kann ich nicht auch einfach anders Null definieren und gut is?



  • Virokams schrieb:

    also aus .cpp .c machen... ok mal probieren.

    wahrscheinlich werden dann andere stellen angemeckert (z.b. wenn du nackte struct-tagnamen als typen verwendest). aber da musste jetzt durch, wenn du in C programmieren willst. du könntest dich auch in's c++ forum verschieben lassen, nur befürchte ich, dass sich dort niemend deiner fragen annehemn wird. stattdessen werden sie dir 'designfehler' vorhalten, 'boost' empfehlen usw. so wie man's kennt.
    🙂



  • +fricky schrieb:

    wahrscheinlich werden dann andere stellen angemeckert (z.b. wenn du nackte struct-tagnamen als typen verwendest). aber da musste jetzt durch, wenn du in C programmieren willst.

    Und ich glaube nicht, dass bei dem Umfang wirklich viele Anpassungen gemacht werden müssen. Mit den typedefs isses wahrscheinlich schon fast erledigt...



  • _matze schrieb:

    ...Mit den typedefs isses wahrscheinlich schon fast erledigt...

    mhhh ok... ja muss ich dann mal schauen.


Anmelden zum Antworten