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
Übergabe von Arrays an Funktionen
30.10.2017, 19:27 (Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2017 19:28 von Marcel.)
Beitrag #1
Übergabe von Arrays an Funktionen
Guten Abend zusammen,
Ich stelle mich momentan zu blöd an ein Array in eine Funktion zu schreiben.
Ich habe schnell gemerkt, dass das nicht so ohne weiteres geht.
Aber aus den ganzen Infos im Web bin ich nicht sonderlich schlau geworden.
Könnt ihr mir helfen? Vielen Dank im voraus
Code:
char server[] = "adresse.de";
char host[] = "Host: adresse.de";
char auth[] = "Authorization: Basic ...........";
char adress;

void sendHTTP(char adress) {
  bool retry = true;
  while (retry == true) {
    if (client.connect(server, 80) == 1) {
      Serial.println("Verbindung zum Server erfolgreich!");
      client.println(adress);
      client.println(host);
      client.println(auth);
      client.println("User-Agent: Arduino");
      client.println("Connection: close");
      client.println();
      client.stop();
      retry = false;
    }
    else {
      Serial.println(F("Verbindung zum Server nicht erfolgreich!"));
    }
  }
}
Aufruf der Funktion:

sendHTTP("GET /pfad/zur/datei/test.php HTTP/1.1");

Die Serveradresse, Host und Login Daten sind immer gleich nur der Pfad
auf dem Server unterscheidet sich, deswegen muss die Adresse als einziges Übergeben werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.10.2017, 21:53 (Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2017 22:01 von MicroBahner.)
Beitrag #2
RE: Übergabe von Arrays an Funktionen
Hallo Marcel,
wenn Du ein Array an eine Funktion übergeben willst, musst Du dich ein wenig mit Pointern in C beschäftigen.
An die Funktion übergibst Du dann einen Pointer auf das Array:
Code:
void sendHTTP(char *adress) {
alternativ kannst Du das auch so schreiben:
Code:
void sendHTTP(char adress[] ) {
Dann sieht man, dass Du ein Array übergeben willst

P.S. dein Aufruf
Code:
sendHTTP("GET /pfad/zur/datei/test.php HTTP/1.1");
macht das bereits ( er übergibt einen Pointer auf den String ), nur deine Funktion weis eben noch nicht, dass sie einen Pointer übergeben bekommt.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.10.2017, 01:24
Beitrag #3
RE: Übergabe von Arrays an Funktionen
Oder wie ich immer gepredigt habe: Der Name eines Arrays ist ein Pointer auf das erste Element.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.10.2017, 13:19 (Dieser Beitrag wurde zuletzt bearbeitet: 31.10.2017 13:25 von Marcel.)
Beitrag #4
RE: Übergabe von Arrays an Funktionen
Danke für die Hilfe, die Funktion läuft jetzt so wie sie soll Big Grin
Im gleichen Sketch würde ich gerne mithilfe des MCP23017 alle seine 16 Inputs lesen und dann auswerten.
Gibt es eine andere Möglichkeit als 16 Mal
Code:
if (mcp.digitalRead(0) == LOW && mcp0state == 0) {
    mcp0state = 1;
    sendHTTP("GET /Datei/test.php?event=0)";
}

if (mcp.digitalRead(0) == HIGH && mcp0state == 1) {
    mcp0state = 0;
}
zu schreiben?
Die Idee hinter der state Variabel ist das nur einmal pro Flankenwechsel die Funktion sendHTTP() aufgerufen wird. Durch einen weiteren Flankenwechsel wird die Variabel wieder zurück gesetzt und die Funktion kann wieder aufgerufen werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.10.2017, 13:28
Beitrag #5
RE: Übergabe von Arrays an Funktionen
Da das mit dem ursprünglichen Theam nichts zu tun hat, ist es besser dafür einen neuen Thread mit aussagekräftigem Betreff zu eröffnen.

Schreibe da bitte auch gleich den Link zu Deiner MCP23017-Lib mit rein.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Reihenfolge der Funktionen in der IDE Bernd666 7 508 14.03.2019 23:09
Letzter Beitrag: Bernd666
  Arbeiten mit Arrays Jan99 23 1.206 08.03.2019 10:10
Letzter Beitrag: MicroBahner
  mehrdim. Arrays wert der ersten dimension ausgeben sepp01 19 1.424 14.10.2018 06:55
Letzter Beitrag: sepp01
  Funktionen mit der millis() Funktion Zis 3 1.367 16.05.2018 21:50
Letzter Beitrag: Tommy56
  Int ändert bei Übergabe seinen Wert?? da_user 30 3.793 15.04.2018 22:12
Letzter Beitrag: da_user
  Funktionen und deren Rückgabewerte, Verständnisproblem HarryS 6 1.700 07.02.2018 22:58
Letzter Beitrag: Tommy56
  Arrays of String in C Diskusguppy 3 1.226 16.12.2017 10:12
Letzter Beitrag: Diskusguppy
  Daten übergabe ans Nextion Display Franz54 53 10.665 09.10.2017 09:16
Letzter Beitrag: Franz54
  Werden ungenutzte Funktionen weg optimiert? BennIY 1 862 03.10.2017 09:06
Letzter Beitrag: Tommy56
Lightbulb mehrere Funktionen mit Schalter mechastef 7 2.126 21.08.2017 22:34
Letzter Beitrag: SkobyMobil

Gehe zu:


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