array an funktion übergeben



  • hallo,

    typedef struct {
    bool var1[10];
    int var2;
    } xxx;
    

    ich übergebe die structur

    Func1(xxx);
    
    func1(xxx *structur)
    {
    /* bis hierhin geht alles und kann mit var1 - var2 arbeiten,
    jetzt möchte ich aber NUR var1 an eine andere funktion übergeben */
    func2(var1);
    }
    
    func2(bool *xvar1) // mit *
    {
    }
    

    da kommt aber error:
    error C2664: 'func2' : Konvertierung des Parameters 1 von 'int [256]' in 'bool *' nicht moeglich
    Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat

    mach ichs so:

    func2(bool xvar1) // ohne *
    {
    }
    

    da kommt dann warning:
    warning C4800: 'int *' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)

    kann mir einer sagen wie es richtig geht? 🤡



  • ups kleiner tippfehler

    func1(xxx *structur)
    {
    /* bis hierhin geht alles und kann mit var1 - var2 arbeiten,
    jetzt möchte ich aber NUR var1 an eine andere funktion übergeben */
    func2(var1); // FALSCH
    
    func2(xxx->var1); // so hab ichs
    }
    


  • mmhh wenn ich statt "bool" ein "BOOL" mache geht es scheinbar ... wieso das denn?

    func2(BOOL *xvar1)
    {
    }



  • XguestX schrieb:

    ups kleiner tippfehler

    func1(xxx *structur)
    {
    /* bis hierhin geht alles und kann mit var1 - var2 arbeiten,
    jetzt möchte ich aber NUR var1 an eine andere funktion übergeben */
    func2(var1); // FALSCH
    
    func2(xxx->var1); // so hab ichs
    }
    

    Dein Aufruf müßte eigentlich

    func2(structur->var1);
    

    heißen.


Anmelden zum Antworten