Variablen in einem Array?
-
also wenn du es so meinst
int iA = 0; int iB = 10; int iC = 20; int iArray[]={iA, iB, iC};geht das nur wenn bei erstellung der Array die variablengröße bekannt ist. ist sie es nicht, steht in iArray[2] der wert den iC zu beginn hatte evtl 0 und nicht der dem ihm zur laufzeit zugewiesen wurde evtl 30, wenn du die Array in der Header erstellst.
int iArray[10];geht es zu laufzeit nur so
iArray[0] = iA; iArray[1] = iB; iArray[2] = iC;hierbei hast du die Actuellen werte die iA, iB, iC zu laufzeit haben.
geht so mit allen variablen typen.
-
PS: Hier empfehlen sich sinnvollerweise auch (for-)Schleifen
. Zu beachten ist hier natürlich noch der 0-basierte Index!
-
hmm hilft mir net so, oder ich habs falsch erläutert.
Also ich habe 7 Statische Elemente, die mir was anzeigen sollen.
Die funktion für alle 7 ist die selbe. Nun liegt das doch nahe, dass ich das in eine kleine for() schleife einbinden möchte.Gedacht hab ich mir einen Array z.B. Variablen[7] = {m_var1,m_var2,...}; Wobei nachher die m_var's halt etwas anzeigen sollen.
im Prinzip:
m_var1 = /*ergebnis*/ 12364,34; //sowas hat. und dann halt abfragen mit if-elseWeil in der for()-schleife folgt eine If-Abfrage und das dann 7 mal machen ist recht viel schreibkram und sieht zudem auch noch "billig" aus...
-
also wenn dir das net weiterhilft weis ich nicht was du noch gebrauchen könntest hast alles was du brauchst um das durchzusetzen was du willst.

du muist die array Variablen[7] = {m_var1,m_var2,...}; nur dort erstellen wo du den variablen den wert zuweist und den statischen elementen übergeben willst.
-
aahhh sry... ich ruf das falsch auf...
Man sollte schon member-vars nehmen und den array nicht im OnTimer füttern.
OnInit wäre wohl besser geeignet...
-
Hab immernoch ein Problem damit. Und zwar möchte ich diese Zeilen:
m_Spin1 = SpinBuffer[0]; m_Spin2 = SpinBuffer[1]; m_Spin3 = SpinBuffer[2]; m_Spin4 = SpinBuffer[3]; m_Spin5 = SpinBuffer[4]; m_Spin6 = SpinBuffer[5];so zusammenfügen, dass wo etwas bei rauskommt:
SpinBuffer[6] = {m_Spin1,m_Spin2,m_Spin3,m_Spin4,m_Spin5,m_Spin6};Aber irgendwas mach ich falsch oder hab einen denkfehler. Diese Fehlermeldung schmeißt er mir raus:
...\sw24r6dlg.cpp(151) : error C2059: Syntaxfehler: '{'
...\sw24r6dlg.cpp(151) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
...\sw24r6dlg.cpp(151) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'Aber nur, wenn ich den Array als Member Anlege.
m_Spin1...7 ist INT genau wie der Array.
Weiß einer was ich falsch mache?
-
Diese Initialisierungslisten funktionieren nur bei der Deklaration des Arrays (
int SpinBuffer[6]={...};), nicht bei einer späteren Zuweisung (int SpinBuffer[6];...;SpinBuffer={...};) - wenn du nachträglich etwas zuweisen willst, mußt du das elementweise machen.
-
so deklarierst du ne array
SpinBuffer[6] = {m_Spin1,m_Spin2,m_Spin3,m_Spin4,m_Spin5,m_Spin6};zur laufzeit ne member Array belegen geht nur
SpinBuffer[0] = m_Spin1; SpinBuffer[1] = m_Spin2; SpinBuffer[2] = m_Spin3; SpinBuffer[3] = m_Spin4; SpinBuffer[4] = m_Spin5;NEW EDIT:
@CStoll du schreibst schneller
wollte dich nicht nochmal zetieren
-
ahh ok...danke!
-
Hab doch noch ne Lösung gefunden.
Man kann die Member-Vars so ändern dass sie gleich als teile des Arrays fungieren.
Auch wenn ihr das schon wisst...