Typedef Struct Problem



  • Hallo mit einander,

    habe ein kleines Problem bei dem ich nicht weiter komme.

    Und zwar folgendes:

    #include <stdio.h>
    
    typedef struct {
      int some_foo;
      int some_bar;
    } foo;
    
    void some_function (foo *test){
    
      test.some_foo = 1;
    
      return;
    
    }
    
    int main(){
    
      foo *test;
    
      some_function (test);
    
      return 0;
    }
    

    nun sagt er mir, dass some_foo zu keiner structur gehört.
    Ich verstehe aber nun nicht wieso, ich habe doch foo als Typ definiert,
    und some_foo gehört zu der structure test.

    Würde mich über Hilfe freuen, danke



  • Ich denke das Problem liegt in Zeile 11. Du hast dort einen Aufruf test.some_foo aber weil test ein Pointer ist muesste das test->some_foo sein.

    *Edit
    Ausserdem hast du noch das Problem, dass der Pointer foo *test, den du in main() deklarierst, ins Nirgendwo zeigt. Den musst du noch initialisieren sonst crasht das Programm zur Laufzeit.



  • Beim Zugriff auf das Element eines struct-Zeigers muss es heißen:

    test->some_foo = 1;
    

Anmelden zum Antworten