Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 7 sie 2025, o 22:19


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 28 sie 2015, o 15:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sie 2012
    Posty: 159
    Pomógł: 1

    Witam !

    Mam taki problem związany ze strukturami, może coś poradzicie ;) Na poczatku tworzę strukturę List w której chcę mieć 10 struktur item.

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Problem w tym że jak zapisuję coś do tej struktury Item przez strukturę List

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    to list.it[x].text, niezależnie ile jest x zawsze ma taką samą wartość ( w tym wypadku wskazuje na "text1"). Poczytałem w internecie i okazuje się, że muszę zarezerwowac pamięć funkcją malloc(). Tylko, że przedtem muszę zmienić Item it[10]; na wskaźnik wskaźnika Item[10] ? Tzn Item **it; ? Taki przykład widziałem w necie i już nie wiem jak mam to zrobić. Mógłby ktoś mi to łopatologicznie wyjaśnić ?

    pozdrawiam,
    Piotrek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 sie 2015, o 21:20 
    Offline
    Użytkownik

    Dołączył(a): 15 lut 2012
    Posty: 224
    Lokalizacja: Opole
    Pomógł: 24

    Tutaj chyba znajdziesz odpowiedź:

    topic10173.html



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 sie 2015, o 22:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 kwi 2014
    Posty: 438
    Lokalizacja: Zambrów
    Pomógł: 22

    W strukturze Item masz tylko wskaźnik na char o nazwie text, a chcesz mu przypisać ciąg znaków zamiast adresu na co ma wskazywać. Jeżeli chcesz zapisać w strukturze Item stringa w taki sposób jak podałeś "list.it[0].text="text";" to trzeba tam utworzyć tablicę znaków char, a nie wskaźnik, czyli np. char tekst[10];

    Jednak dodatkowo z tego co pamiętam takie przypisanie nie będzie działać i do stringów trzeba użyć funkcji bodajże strcpy zamiast używać operatora "="
    Te "=" można natomiast z powodzeniem stosować do typów liczbowych.

    Ewentualnie by to zadziałało jak napisałeś wcześniej jeżeli w programie zdefiniowałbyś samego stringa np. tak: char tablica_tekst1[] = "tekst1"; Wtedy powinno zadziałać list.it[0].text= tablica_tekst1;

    Jak się mylę to poprawcie bo z pamięci piszę i nie wiem czy dobrze prawię :)

    _________________
    .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 sie 2015, o 22:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sie 2012
    Posty: 159
    Pomógł: 1

    Kurcze jaki głupi błąd. Nie pokazałem Wam oczywiście całego kodu w którym znajduje się while:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    A tu od razu widać co robię źle - za każdym razem zmieniam wartość tablicy na którą wskazuje poprzedni wskaźnik.

    Przykład z pierwszego posta działa jak powinien...

    pozdrawiam,
    Piotrek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 sie 2015, o 23:04 
    Offline
    Użytkownik

    Dołączył(a): 29 lip 2014
    Posty: 195
    Pomógł: 44

    Witam,

    kolego klonyyy właśnie miałem napisać, że jakim cudem u Ciebie nie działa, jak u mnie praktycznie identyczne rozwiązanie działa :-), specjalnie "odkopałem" zapomniany fragment kodu. Dobrze, że się wyjaśniło.

    Pozdrawiam, QuadMan.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO