Mam dziwny problem.
Funkcja powinna zwrócić przetworzony łańcuch i wszystko jest ok póki nie podstawi się tego łańcucha w funkcji sprintf().
Zobaczcie:
Wszystko działa póki nie wywołam tego w ten sposób:
Jeśli dam:
To wszystko działa.
Krótko mówiąc: sprintf() nie może tego zmielić. Wypluwa jakieś krzaki albo nic.
Ma ktoś pomysł?
Funkcja powinna zwrócić przetworzony łańcuch i wszystko jest ok póki nie podstawi się tego łańcucha w funkcji sprintf().
Zobaczcie:
char * numerPDUtoTXT(char * numer)
{
volatile char nowy[15];// BEZ VOLATILE funkcja zwraca cały łańcuch - brak reakcji na nowy[strlen(numer)-1]=0; czyli zakończenie stringa
char a=0;
for (char z=0; z<15; z++) nowy[z]=0;// to nic nie daje
for(a=0; a<strlen(numer) ; a+=2)
{
nowy[a+1]=numer[a];
nowy[a]=numer[a+1];
}
nowy[strlen(numer)-1]=0;
return (nowy);
} Wszystko działa póki nie wywołam tego w ten sposób:
sprintf(buf,"ATD %s;",numerPDUtoTXT("11223344"));
SendAT(buf);Jeśli dam:
SendAT(numerPDUtoTXT("112233"));To wszystko działa.
Krótko mówiąc: sprintf() nie może tego zmielić. Wypluwa jakieś krzaki albo nic.
Ma ktoś pomysł?