struct array loop



  • Hallo,
    ich habe einen struct der Form:

    typedef struct zuor
    {
    	char 	*name;
    	int 	*fkt;
    	int	Fall1;
    	int 	Fall2;
    	int	Fall3;
    	int	Fall4;
    }posi;
    
    posi test[]=
    {
      {"Test1", &get1, 3, 2, 1, 0 },
      {"Test2", &get2, 9, 8, 7, 6 },
    }
    

    Nun möchte ich auf Fall 1 bis 4 nicht via test[0].Fall1, test[0].Fall2 etc. zugreifen, sondern durch eine for-Schleife.
    test[0].2 etc. funktioniert nicht aber gibt es vielleicht eine andere Möglichkeit?
    Kann man nicht vielleicht notfalls einen String zur Variablen zusammenbauen oder so (nicht zur Laufzeit)?
    Danke für eure Hilfe!



  • nein, kann man nicht. zur laufzeit gibt es die bezeichner gar nicht mehr. mach die fälle einfach zu einem array aus vier ints:

    #include <iostream>
    struct posi
    {
        char    *name;
        int     *fkt;
        int Fall[4];
    };
    
    int main()
    {
        posi Foo;
        for(std::size_t i = 0; i < 4; ++i)
            std::cout << Foo.Fall[i];
    }
    

    ps.: das was du da mit typedef struct machst ist c und in c++ nicht mehr nötig.


Anmelden zum Antworten