title: struct has no member named... and expected identifier
body: <p>I started learning a bit C and for that i am programming a little game so please be gentle with me.
  I want to put my arrays into two different structs.
  The first struct has five arrays and describes the attributes of the monsters.
  The second one shall describe the attributes of the charakter you are playing.</p>
  
  <pre><code>struct monster_eigenschaften {
      const int monster_leben[MONSTER_ANZAHL] = {10,12,15,19,25};
      const int monster_schaden_mod[MONSTER_ANZAHL] = {5,6,7,8,9};
      const int monster_schaden_const[MONSTER_ANZAHL] = {3,4,5,6,7};
      const int monster_erfahrung[MONSTER_ANZAHL] = {5,10,20,30,50};
      // Array aus 5 Pointern mit den jeweiligen Namen der Monster
      const char *monster_name [MONSTER_ANZAHL] = {"Bob","Horst","Gerd","Bonobo","Olaf"};
  };
  struct monster_eigenschaften -&gt; eigenschaften[MONSTER_ANZAHL];
  
  struct charakter_eigenschaften {
      // Anzahl der Heiltränke des Charakters
      int heiltrank;
      // Benötigte EXP zum nächsten level-up
      unsigned int char_erfahrung_need;
      // EXP des Charakters
      unsigned int char_erfahrung_haben;
      // Benötigte EXP zum level-up
      int char_erfahrung_aufstieg = 50;
      // Level des Charakters
      int char_level = 1;
      // Schaden den der Charakter mindestens macht
      int atk_char_const = 10;
      // modularer Schaden der auf den Konstanten Schaden gerechnet wird
      int atk_char_mod = 5;
  
  int monster(int id, int spieler_leben) {
      struct charakter_eigenschaften -&gt; charakter[MONSTER_ANZAHL];
      int leben = eigenschaften.monster_leben[id];
      int dmg;
      int atk_char;
      char kampf_flucht;
      char trank_auswahl;
      printf("Ein wildes %s erscheint!\n", eigenschaften.monster_name[id]);
      printf("Wollen sie Kaempfen oder flüchten? (k/f)\n");
      scanf("%s", &amp;kampf_flucht);
      do{
          atk_char = rand() %  charakter.atk_char_const + charakter.atk_char_mod;
          dmg = rand() % eigenschaften.monster_schaden_mod[id] + eigenschaften.monster_schaden_const[id];
          // Wenn k oder K gedrückt wird, startet der Kampf und endet sobald die Lebenspunkte des Charakters oder des Monsters auf Null sind
          if (kampf_flucht == 'k' || kampf_flucht == 'K'){
              printf("%s greift an und richtet %d schaden an\n", eigenschaften.monster_name[id], dmg);
              spieler_leben = spieler_leben - dmg;
              printf("Sie greifen an und richten %d Schaden an\n", charakter.atk_char);
              leben = leben - charakter.atk_char;
              printf("%s hat %d Leben\n",eigenschaften.monster_name[id], leben);
              printf("Sie haben noch %d Leben\n", spieler_leben);
          }
          // Wenn f oder F gedrückt wird, soll der Charakter vor dem Monster fliehen
          else if(kampf_flucht == 'f' || kampf_flucht == 'F'){
              printf("Sie sind gefluechtet\n");
              break;
          }
          // Wenn weder k, K, f oder F gedrückt wird, wird die Schleife verlassen
          else{
              break;
          }
          if(charakter.heiltrank &gt;= 1){
              printf("Möchten Sie einen Heiltrank benutzen?(y)\n");
              scanf("%s", &amp;trank_auswahl);
              if(trank_auswahl == 'y' || trank_auswahl == 'Y'){
                  spieler_leben = spieler_leben + HEILUNG;
                  heiltrank --;
                  printf("Sie haben einen Heiltrank getrunken und haben nun %d Lebenspunkte\n", spieler_leben);
                  printf("Ihnen verbleiben %d Heiltränke\n", heiltrank);
              }
          }
      }
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/s9HLS.png" rel="nofollow noreferrer">Logs</a></p>