INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Referenz eines Arrays in Klasse nutzen
23.02.2015, 01:26 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2015 01:29 von jensel.)
Beitrag #1
Referenz eines Arrays in Klasse nutzen
Hallo Zusammen,

ich bin mal wieder ein wenig mit meinem Arduino am basteln und natürlich direkt auf ein Problem gestoßen, bei dem ich nicht weiter komme. Da ich noch nicht so viel Erfahrung in der Arduino programmierung habe, bin ich noch recht viel am probieren und testen.

Was ich jetzt schon eine Weile versuche ist, eine Referenz auf ein Array an eine Funktion zu übergeben und dann intern mit der Referenz zu arbeiten. Das ganze möchte ich nur einmalig im Setup zuweisen mit einer Function "setActualTime" und dann im Loop nur noch die Werte des Arrays verändern. An anderer Stelle im Loop möchte ich dann über eine andere Funktion "getActualTime" über die interne Referenz auf die Werte des bei "setActualTime" übergebenen Arrays zugreifen.

Die Funktionen der Klasse MenuItem sehen zur Zeit so aus (funktioniert noch nicht so wie ich gerne möchte):

Code:
//Speicher für die aktuelle Zeit (Aufbau: Stunde,Minute,Sekunde)
int ActualTime[3];

//Public
void MenuItem::setActualTime(int _ActualTime[]){
    ActualTime[0]=_ActualTime[0];
    ActualTime[1]=_ActualTime[1];
    ActualTime[2]=_ActualTime[2];
}

//Public
String MenuItem::getActualTime(){
    return getTimeString(ActualTime[0],ActualTime[1],ActualTime[2]);
}

Bei der Übergabe eines Arrays an eine Funktion wird doch immer der Pointer übergeben, diesen müsste ich mir doch speichern können um dann immer auf das übergebene Array zugreifen können?

Kann mir da jemand einen Tip geben?

Gruß
jensel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2015, 09:52 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2015 09:52 von Thorsten Pferdekämper.)
Beitrag #2
RE: Referenz eines Arrays in Klasse nutzen
Hi,
so etwa:
Code:
class MenuItem {
...

private:
   int* myActualTime;

}

//Speicher für die aktuelle Zeit (Aufbau: Stunde,Minute,Sekunde)
int ActualTime[3];


//Public
void MenuItem::setActualTime(int _ActualTime[]){
     myActualTime =_ActualTime;
}

//Public
String MenuItem::getActualTime(){
     return getTimeString(myActualTime[0],myActualTime[1],myActualTime[2]);
}
Ich hab das nicht probiert, aber das würde ich so versuchen.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2015, 10:58
Beitrag #3
RE: Referenz eines Arrays in Klasse nutzen
Hallo Thorsten,

danke für die Antwort, es funktioniert jetzt.

Vielleicht kannst du mir noch kurz erklären warum in dieser Funktion

Code:
String MenuItem::getActualTime(){
    return getTimeString(ActualTime[0],ActualTime[1],ActualTime[2]);
}

nicht über den Sternchen Operator auf das Array zugegriffen wird? Eigentlich möchte ich doch den Inhalt des Pointers auslesen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2015, 11:25
Beitrag #4
RE: Referenz eines Arrays in Klasse nutzen
Hi,
wenn Du das möchtest, dann kannst Du es auch so schreiben:
Code:
return getTimeString(*ActualTime, *(ActualTime + 1), *(ActualTime +2));
Das finde ich aber etwas unübersichtlich.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2015, 11:43
Beitrag #5
RE: Referenz eines Arrays in Klasse nutzen
Hallo,

aha ok, jetzt wird es mir klar Idea
Arrays verhalten sich da ja etwas anders.

Danke für Deine Hilfe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2015, 11:46
Beitrag #6
RE: Referenz eines Arrays in Klasse nutzen
Hi,
man könnte auch sagen, dass es Arrays nicht wirklich als eigenständige Datentypen gibt. Der ganze Kram mit [] ist nur eine Kurzschreibweise für Zeiger-Arithmetik.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Frage zur Programmierung eines Ultraschallsensors jalu4601 10 348 21.09.2016 15:06
Letzter Beitrag: Bitklopfer
  Ansteuern eines Schrittmotors Uwe1475 28 1.014 03.09.2016 21:03
Letzter Beitrag: Uwe1475
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 754 16.07.2016 11:43
Letzter Beitrag: Binatone
  Zerlegung eines Programmcodes hello_world 5 534 30.04.2016 11:01
Letzter Beitrag: rkuehle
  mehere Analoge Eingänge nutzen clemens89 17 1.075 16.03.2016 20:40
Letzter Beitrag: hotsystems
  Oszillation eines Steppermotors Nimes 12 909 07.03.2016 17:47
Letzter Beitrag: Binatone
  Probleme beim Auslesen eines IR Empfängers linuxpaul 7 574 06.03.2016 14:44
Letzter Beitrag: hotsystems
Bug Mit zwei Ultraschallsensoren die Drehbewegung eines Servos steuern Poet 5 558 21.02.2016 18:37
Letzter Beitrag: Carlo
Star Infrarot variabel nutzen ??? Mourti 7 409 18.02.2016 18:13
Letzter Beitrag: Mourti
  Suche Konzept für ein Inhaltsverzeichnis eines EEPROM avoid 0 311 27.01.2016 10:49
Letzter Beitrag: avoid

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste