heute hätte ich einmal wieder ein kleines Rätsel für alle PicoC-Profis unter uns!
Folgende Situation:
Ich erzeuge mit einem separaten Programm-Baustein aus einem Wetter-Service (aerisapi) einen String mit 24 Temperatur-Werten, den ich über Text-Ausgang und -Eingang des Programmbausteins in mein Hauptprogramm übertrage. Die einzelnen Werte sind mit Semikolon voneinander getrennt. Der String sieht folgendermaßen aus:
void func_ImportTemps()
{
char * strTemps;
char strVal[3];
int itempPos;
strTemps=getinputtext(0);
for (int i=0;i<constProgStunden;i++)
{
itempPos=strfind(strTemps,";",0);
strncpy(strVal,strTemps,itempPos);
arrayTProg[i]=batoi(strVal);
strTemps=strstrskip(strTemps,";");
}
free(strTemps);
//free(strVal);
}
Ursprünglich dachte ich an ein Allokations-Problem durch die Pointer, die ich anlege bzw. die in der Funktion entstehen, allerdings läuft in solchen Fällen eine explizite "alloc"-Fehlermeldung auf. Die bleibt hier aus...
Wenn ich die Funktion auskommentiere und den restlichen Code laufen lasse, bleibt dieser Fehler anscheinend aus.
Im Monitor konnte ich bisher keine Fehlermeldung finden. Cycle duration liegt bei ca. 80-100us, Contextswitches:0. Das sind quasi alle Meldungen, die aufploppen bei "Mehr Info" für Allgemein, Programm und Datei.
Jetzt bin ich mit meinem bisher angelernten PicoC-Wissen am Ende. Da der Wetterdienst mehr als nur die Temperaturen liefert, würde ich ihn gerne getrennt stehen lassen und nur die Temperaturen übergeben.
Fällt jemandem von euch da noch etwas ein, woran sich das Programm fressen könnte bzw. wie man das umgehen kann?
Wäre sehr dankbar ;-)
Kommentar