struct/objekt #C

hsma2510

Grünschnabel
Hey, also ich möchte jeder Methode einen Pointer "that" mitgeben der auf das Objekt (bzw. instanziierte Struct) zeigt. Bei der Instanziierung des Objekts, soll die Konstruktor Methode aufgerufen werden.

Hier mein Ansatz.

Danke im voraus.

C:
#include <stdio.h>

struct ad_struct {

    char name[20];
    char street[30];
    int number;
    char city[40];
    int postal;

}that = {0,1 ,2,3,4,};

void kon(struct ad_struct *that){

    that->name;
    that->street;
    that->number;
    that->city;
    that->postal;

}

void print(that){

    printf("Name: %s\n Strasse: %s Nummer: %d \n Stadt: %s Postleitzahl: %d \n",0,1,2,3,4);
}

int main(int argc, char**argv) {

    struct ad_struct a = {"Ingo", "BismarkStrasse", 231, "Ludswigshafen", 23423};

    print(&a);}
 
Lösung
Valgrind läuft bei mir noch nicht, ich denke dazu muss ich noch etwas installieren? "File not found: ....."
Natürlich, siehe Internet.

Ich wollte zuerste den Pointer auf NULL setzen, aber das funktionierte nicht.
Wieso sollte das funktionieren? NULL kannst auch nicht dereferenzieren.

In der Fassung, in der es nun funktioniert, legst du auf dem Stack die Variable "a" an und lässt "that" darauf zeigen. Deswegen lässt sich "that" auch wunderbar dereferenzieren.
Zurück