xentis napisał(a):
Więc najpierw musisz utworzyć zmienną, która będzie zawierała coś co nazywasz "moja nazwa" a dopiero możesz we wskaźniku umieścić adres pamięci pod którym jest zapisany ww coś "moja_nazwa"
W sumie autor wątku tak właśnie robi (przynajmniej tak to wygląda). Rozumiem to tak, że zmienna
reszta jest wskaźnikiem na ciąg znaków odebranej komendy AT. Funkcja
strtok() zwraca adres początku podciągu "moja_nazwa", który to adres zostaje przypisany do elementu struktury
konfiguracja.savetranslink (która, jak się domyślam, jest zdefiniowna jako globalna) i odbywa się to prawidłowo skoro:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Moim zdaniem problemem może być czas życia zmiennej wskazywanej przez wskaźnik
reszta. Istnieje prawdopodobieństwo, że w momencie wysyłania:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
zmienna wskazywana przez
reszta już nie istnieje (np. była zadeklarowana jako zmienna lokalna i uległa degradacji po zakończeniu funkcji). Autor wątku przedstawił zbyt mało kodu, aby to można było ocenić.
Inną przyczyną może być to, że od momentu przypisania wskaźnika do zmiennej
konfiguracja.savetranslink do momentu wysłania (
pakiet_str("+SAVETRANS:",konfiguracja.savetranslink);) zawartość ciągu, na który wskazuje
konfiguracja.savetranslink, została zmieniona. Ponownie dodam, że autor przedstawił zbyt mało informacji, aby jednoznacznie zdiagnozować problem.