Frage zum Indirektionsoperator bei der Dyn. Speicherallozierung.



  • Hallo,

    könnte mir bitte jemand erklären wo hier genau der Unterschied
    liegt, denn beides funktioniert einwandfrei.

    struct struktur *temp;

    temp = (char 😉 malloc(sizeof(struct struktur *));
    temp = (char 😉 malloc(sizeof(struct struktur));

    Vielen Dank!

    Grüße,
    Tutorialfresser



  • Das erste allokiert genug Speicher für einen Zeiger, das zweite für die Struktur. Folgendes geht ja auch:

    temp = malloc(12);
    

    BTW: Warum castest Du malloc nach char* und speicherst es dann in einem (struct struktur*)? Malloc braucht man garnicht casten.



  • Aber bei C++ ist das Casting doch Pflicht, und ich habe mir gedacht sollte
    ich jemals etwas mit C++ zu tun haben muss ich mich nicht erst umstellen.



  • TutorialFresser schrieb:

    Aber bei C++ ist das Casting doch Pflicht, und ich habe mir gedacht sollte
    ich jemals etwas mit C++ zu tun haben muss ich mich nicht erst umstellen.

    die c++ -fans nehmen lieber 'new', das muss man nicht casten.
    die casts in c++ sehen auch völlig bescheuert aus: blahblahblubb_cast<typ>(objekt)
    aber zum glück gehen c-casts auch noch in c++ 😉


Anmelden zum Antworten