000
02.07.2008, 23:15 Uhr
~SPuckfunkel
Gast
|
hi, ich hab nen problem und zwar versuche ich ein struct array an eine funktion zu übergeben. die werte der structures des array sollen dann in der funktion verändert werden. am besten hier mal nen verkürzter codeausschnit
C++: |
typedef struct { int timestamp; } PmEvent;
PmEvent buffer1[100]; PmEvent buffer2[100];
void tickToTime(PmEvent *srcBuffer, PmEvent *destBuffer, int anz) { for(int i=0; i<anz; i++) { destBuffer[i].timestamp = srcBuffer[i].timestamp + 20; } }
void main(void) { tickToTime(buffer1, buffer2, 100); }
|
buffer1 ist natürlich mit werten gefüllt (die structure ist natürlich komplexer, ich habe hier einiges vereinfacht um es zu verdeutlichen). der compiler (vc++2005 express) spuckt nen haufen fehler dazu aus. z.B: error C2059: Syntaxfehler: '=' error C2143: Syntaxfehler: Es fehlt ')' vor ';' error C2143: Syntaxfehler: Es fehlt ';' vor ')' error C2059: Syntaxfehler: ')'
(alles zu der zeile "destBuffer[i].timestamp = srcBuffer[i].timestamp")
wenn ich den -> operator anstatt den punkt nehme, sagt der compiler "error C2819: Der Typ 'PmEvent' hat keinen überladenen Elementoperator '->'"
ich wäre sehr dankbar, wenn mir jemand einen tipp geben könnte, was ich falsch mache.
eine zweiter frage: wie kann ich in einer klasse ein array von objekten anlegen, und dann auf sie zugreifen. ich probiere das gerade so (stark verkürzt):
C++: |
class CClip{ public: int anz; };
class CSequencer { public: CClip *clips; CSequencer() { clips = new CClip[10]; } };
CSequencer sequencer;
void main(void) { sequencer.clips[0].anz = 2; }
|
der compiler spuckt für die zeile in der main funktion solche fehler aus: error C2059: Syntaxfehler: '=' error C2143: Syntaxfehler: Es fehlt ')' vor ';' error C2143: Syntaxfehler: Es fehlt ';' vor '/' error C2059: Syntaxfehler: ')'
ich wäre echt sehr dakbar, wenn einer von euch mir helfen könnte, da ich mit dem projekt gerade ein wenig unter zeitdruck bin. gruß andi |