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 Funktionsformatmach 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.