Was bewirkt dieses kleine Zeigerprogramm?



  • Es reserviert Speicher für "i" und befüllt i danach mit der Zahl 5.
    Und dann gibt es den Speicher nicht wieder frei. Daher auch das von Matze erwähnte Speicherleck.

    In Summe zeigt es eigentlich ein Negativbeispiel, wie man es nicht machen sollte 😉



  • It0101 schrieb:

    Es reserviert Speicher für "i" und befüllt i danach mit der Zahl 5.
    Und dann gibt es den Speicher nicht wieder frei. Daher auch das von Matze erwähnte Speicherleck.

    Aber das System gibt den Speicher nach der Terminierung frei (sollte es zumindest). Daher ist das "Speicherleck" hier ziemlich egal.



  • David_pb schrieb:

    (sollte es zumindest)

    Wenn das System sagt "ne, will ich nich", dann hat man trotzdem ein Speicherleck



  • zwutz schrieb:

    David_pb schrieb:

    (sollte es zumindest)

    Wenn das System sagt "ne, will ich nich", dann hat man trotzdem ein Speicherleck

    Deswegen schrieb ich ja "sollte". Und welches System tut das?



  • Abgesehen davon ist es nicht gerade schön, manchmal freizugeben und manchmal nicht, nur weil es ja das System bereits tun könnte. Bei komplizierteren Typen muss oft noch mehr als nur Speicher freigegeben werden. Von daher besser, man gewöhnt sich solche Dinge gar nicht erst an.



  • Psychedelixx schrieb:

    wäre jemand so nett, mir dieses Zeigerprogramm Zeile für Zeile in Laiensprache zu erklären?

    Anderer Vorschlag: Du schaust Dir ein paar Zeiger-Tutorien an, versuchst dann Zeile für Zeile das Programm zu erklären (soweit möglich) und deutest genauer auf die Stellen hin, deren Bedeutungen Dir nicht klar sind.

    Gruß,
    SP



  • David_pb schrieb:

    It0101 schrieb:

    Es reserviert Speicher für "i" und befüllt i danach mit der Zahl 5.
    Und dann gibt es den Speicher nicht wieder frei. Daher auch das von Matze erwähnte Speicherleck.

    Aber das System gibt den Speicher nach der Terminierung frei (sollte es zumindest). Daher ist das "Speicherleck" hier ziemlich egal.

    Und dann bastelt man als Anfänger sein Progrämmchen um, fügt noch ein paar Schleifen hinzu und motzt das ganze auf => und wundert sich, warum das vorher doch so gut funktionierende Programm plötzlich den Speicher vollballert... 😉



  • okay, danke erstmal für die Antworten. 🙂

    ich denke, ich sehe mir auch erstmal einige Anleitungen für Zeiger an, dann blicke ich da ja vielleicht auch besser durch 🙂



  • David_pb schrieb:

    It0101 schrieb:

    Es reserviert Speicher für "i" und befüllt i danach mit der Zahl 5.
    Und dann gibt es den Speicher nicht wieder frei. Daher auch das von Matze erwähnte Speicherleck.

    Aber das System gibt den Speicher nach der Terminierung frei (sollte es zumindest). Daher ist das "Speicherleck" hier ziemlich egal.

    Also von einem mit 1793 Beiträgen hätte ich solche Aussage nicht erwartet. Zwar hast du Recht, aber trotzdem gehört zum guten Programmierstil, dass Speicher wieder freigegeben wird.

    Vermutlich hast du früher mal Java oder C# programmiert was? 😃



  • sry doppelpost



  • It0101 schrieb:

    David_pb schrieb:

    It0101 schrieb:

    Es reserviert Speicher für "i" und befüllt i danach mit der Zahl 5.
    Und dann gibt es den Speicher nicht wieder frei. Daher auch das von Matze erwähnte Speicherleck.

    Aber das System gibt den Speicher nach der Terminierung frei (sollte es zumindest). Daher ist das "Speicherleck" hier ziemlich egal.

    Also von einem mit 1793 Beiträgen hätte ich solche Aussage nicht erwartet. Zwar hast du Recht, aber trotzdem gehört zum guten Programmierstil, dass Speicher wieder freigegeben wird.

    Vermutlich hast du früher mal Java oder C# programmiert was? 😃

    Ne! :-p Ich wollt nur darauf hinweisen, dass das eigentlich nichts mit der Fragestellung zu tun hatte! 🙂


Log in to reply