Antwort auf: Tag11 automatisch
› Foren › User Projekte › Tag11 automatisch › Antwort auf: Tag11 automatisch
Dezember 11, 2015 um 20:46 Uhr
#812
Mitglied
Hallo Klaus.
Aus deiner Funktion espConnectionIP
gibst du einen Zeiger auf ein char-Array zurück, das nur in dieser Funktion gültig ist.
Dieses Array wird beim Aufruf der Funktion auf dem Stack angelegt. Wird die Funktion verlassen, wird dieser Speicher wieder für die Benutzung freigegeben. D.h. die Daten werden durch Daten der nächsten Funktion überschrieben. Das kann funktionieren, ist aber sehr unwahrscheinlich und unsicher.
Da gibt es zwei Möglichkeiten:
- deklariere
tmp1
als static (static char tmp1[100];
). Damit wirdtmp1
global angelegt und nicht mehr überschrieben, ist aber weiterhin nur in dieser Funktion sichtbar. Der Inhalt bleibt zwischen den Funktionsaufrufen erhalten. - definiere
tmp1
global (vor allen Funktionen). tmp1 ist dann für alle Funktionen sichtbar, ausser fürloop()
, denn da gibt es nochmal ein lokalestmp1
.
-
Diese Antwort wurde geändert vor 8 Jahren, 9 Monaten von
Raabinator.