No przecież napisałem, że się nie da. Wskaźnik nie przechowuje żadnej innej informacji poza adresem (początku) zmiennej. W związku z tym, jeżeli funkcja potrzebuje rozmiaru, to trzeba go przekazać jako dodatkowy argument. Kolejny raz już nie będę tego powtarzał. Oczywiście, można sobie wszystko opakować w pseudoobiekty w stylu typedef struct {...
Jeśli struktura jest volatile to każde jej pole również ma taki atrybut. Swoją drogą, pomyśl czy nie przejść na C++ - nie chodzi mi tu o wykorzystanie obiektów, szablonów itd., ale samej składni języka, IMHO o wiele lepszej niż składnia C. Na wstępie odpadają te wszystkie typedefy i struct zmienna, w dodatku można naturalnie przekazywać zmienne do...
Trawić w tym kodzie nie ma zbytnio co: struktura jest tylko żeby nie trzeba było za każdym razem przekazywać oddzielnie 3 wskaźników i maski bitu. Aby uzyskać dostęp do rejestru, są tylko dwa sposoby: statyczny kiedy kompilator zna adres rejestru i może go wkompilować do kodu, albo dynamiczny, kiedy kompilator nie zna adresu. Drugie rozwiązanie opiera...
Niestety uzyskuję niezgodność typów w .cpp A konkretnie jak opis tego błędu wygląda? Czy muszę zdefiniować strukturę w klasie restapi? Nie sądzę.
https://obrazki.elektroda.pl/3803750000_... Witajcie moi drodzy Przedstawię tutaj mój sieciowy sterownik przekaźników kompatybilny z Home Assistant poprzez Tasmota HTTP. Sterownik oparty jest o PIC18F67J60 i dodatkowo oferuje m. in. odczyt temperatury, budzik, przyciski, niezależny panel WWW oraz szerokie możliwości konfiguracji. Wstęp...
Dzień dobry. Chciałbym zlecić wykonanie, układu, projektu z przekazaniem praw autorskich i majątkowych, miernika poziomu wody. Wymagania ogólne zamieszczam poniżej. Szczegółowe wymagania podeślę po podpisaniu umowy o poufności (wymagana). Nigdy nie zlecałem jeszcze takiego projektu, więc prośba o wyrozumiałość i ew. konstruktywną krytykę, co powinienem...
Tylko zamiast przekazywać tyle wskaźnikó, ekonomicnziej wychodzi stworzenie struktury, która ma pola odpowiadające poszczególnym parametrom i przekazywać jako argument wskaźnik do takiej struktury. Struktura może przy okazji mieć pola, które przez funkcję będą uzupełniane - od tego już tylko krok do programowania obiektowego i C++. Można też zwracać...
temp=(int*)malloc(sizeof(int)*(s.number-... Ile tu wynosi s.number - pewnie zero w tym momencie
Dlaczego nie zrobić funkcji typu void a strukturę przekazywać poprzez wskaźnik?
Nie widzą bo nie ma w innych plikach extern a w pliku gdzie się znajdują jest static przy deklaracji. Generalnie ostatnio się dowiedziałem że używanie extern przy rozbudowanym projekcie w C jest błędem. Powinno się właśnie utworzyć prosty interfejs czyli funkcje robiące get i set dla konkretnych danych w strukturach, żeby nie było bałaganu jaki powstaje...
Albo przekazywać wskaźnik na funkcję oraz pewien dodatkowy wskaźnik. Funkcja rysująca menu pozyskiwała by ciąg znaków za pośrednictwem przekazanej funkcji. W ten sposób nie trzeba by było trzymać wszystkich opisów na stałe w pamięci, były by generowane tylko na żądanie w momencie widoczności danej pozycji menu. Jeszcze lepiej przekazywać wskaźnik na...
Cytuję: "Ustawia się to w zależności od skomplikowania programu. (...)" O co tutaj chodzi i o jakie wartości tutaj chodzi? Dokładnie chodzi o ilość bajtów jaką początkowo zajmie każdy ze stosów. Stos jest elementem rozrastającym i kurczącym się dynamicznie. Może dojść do sytuacji gdzie jeden zajdzie na drugi - stack overleap - i kłopot gotowy. Dlatego...
Czołem, Od kilku dni stawiam pierwsze kroki z mikrokontrolerami AVR, stanąłem przed problemem z którym nie mogę sobie poradzić stąd moja prośba. Czy ktoś mógłby mi wytłumaczyć łopatologicznie taką kwestę? Piszę algorytm obsługi wielopoziomowego menu, wszystkie pozycje trzymam w takiej oto tablicy: [syntax=c] const menu_obiekt menu[] = { // id, rodzic,...
Po co zmieniasz ciało funkcji? Zmień tylko nagłówek, tak jak to zrobiłeś, a implementację zostaw tą z góry i powinno działać. Jeszcze możesz zadeklarować parametr data jako const, bo funkcja nie ma zmieniać danych w pamięci.
Jeśli to ma być struktura syntezowalna to nie może być tam polecenia initial. Ogólnie wartości początkowe możesz ustawiać asynchronicznym resetem. Proces wówczas powinien tak wyglądać: always (at)(posedge clk or negedge rst) //reakcja na narastające zbocze begin //zegara lub niski stan rst if (~rst) licznik = 16'b0; else begin licznik...
Mam tab Jeśli tablica mogłaby być alokowana jednowymiarowo aka `tab struct S { typ costam; typ tab[1000][16]; }; to nie wiem jak jest pod STM-owymi ARM-ami, ale na większości (jeśli nie wszystkichi) nie 8-bitowych platformach, taka struktura wyrówna swoje membersy do granicy słowa platformy/rozmiaru adresowania, więc będzie...
1. No a gdzie stosowny kod? Chyba przy konstruktorze powinno być tworzenie, a przy destruktorze zwalnianie... 2. Jakim cudem mnożenie przejmuje tylko jeden wymiar, skoro mnożone macierze mogą mieć różne wymiary? 3. Nie bardzo rozumiem... Moim zdaniem cała struktura jest niezaplanowana. Macierz mogłaby być obiektem, a metody np tworzyłyby nową w oparciu...
kolego tony_tg ale napisałeś pościsko - kurcze jeszcze pare linii i może z tego być rozdział ksiązki chciałem się odnieść do netlisty - nie miałem na myśli pisania w tekstowo netlisty a raczej chodziło o budowanie uładów z gotowych komponentów które z składasz z bramek , rejetrów, itd... , idea jest taka że w vhdlu robisz właściwie to samo - żeby dobrze...
Struktury przekazuje się do funkcji tak samo jak typy wbudowane (int, double itp.). Poczytaj o przekazywaniu przez wartość i przez referencję.
Brakuje określenia typów zwracanych przez funkcje (void?). W main próbujesz przekazać strukturę przez wartość. Użyj "&nowy", aby pobrać wskaźnik do nowy. I dodaj gwiazdkę w funkcja2() - musi działać, nie ma bata.
Najlepiej jakby każda wartość wkładana do kolejki była wskaźnikiem (albo strukturą, która ma wskaźnik etc.) na dane. Jest to chyba najwygodniejsze/najprostsze w obsłudze. Żeby nie alokować pamięci non-stop i wciąż można zaadoptować Twój pomysł. Tzn stworzyć bufor raz (nawet nie musi być w takim przypadku dynamiczny) i przekazywać do kolejki strukturę,...
To najlepszym rozwiązaniem rzeczywiście będzie po prostu struktura. Wtedy zamiast adresu zmiennej przekazujesz offset względem początku struktury, który zawsze da się przeliczyć na aktualny adres oraz znika potrzeba dbania o adres samej struktury. Dodatkową zaletą stosowania offsetu jest możliwość zabezpieczenia przed dostępem przed strukturą jak i...
W takim wypadku zrób to na piechotę: np. PostMessage + jakieś struktury do przekazywania informacji, masz tylko zadbać by wszelkie manipulacje obiektami vcl wykonywane były w kontekście wątku głównego.
Witaj Arturze, Funkcja InicjalizujData przyjmuje kopię argumentu Data, dlatego funkcja main nie widzi zmian. Poza tym, kompilator informuje o problemie: kod.c(44) : warning C4700: uninitialized local variable 'g' used W c/c++ argumenty funkcji są przekazywane domyślnie przez wartość (ByVal, by value). Powinieneś zmienić definicję argumentu...
Czy do funkcji HAL_UART_Receive_IT na pewno powinien być przekazywany adres wskaźnika do struktury UART_HandleTypeDef?
Działa na x86, to jeden problem mniej :) Jeśli chodzi o sam padding: - warto go ściśle deklarować w tych strukturach, które bezpośrednio odzwierciedlają binarną strukturę danych (czy tą z pliku/czy jakiegoś protokołu), alternatywą/uzupełnieniem mogą być tutaj pola bitowe / unie. W każdym razie sprawi to, że to będzie precyzyjne i dość odporne na błędy....
a skąd moja biblioteka ma wiedzieć co to jest PINB i PORTB?;) Wskaźnik przekazuje się z zewnątrz, biblioteka nic nie wie co to jest PINB i PORTB. Biblioteka ma w tym przypadku dostęp tylko do wskaźników wskazujących na coś, akurat to my zakładamy, że to coś wskazuje na PINx lub PORTx. Co do uniezależnienia się od io.h: A skąd wtedy program ma wiedzieć...
Error[Pe167]: argument of type "FIL volatile *" is incompatible with parameter of type "FIL *" Obawiam się że to wina kompilatora, bo przykład jest zaczerpnięty z ksiązki w której autor używał kompilatora Eclipse. Czy jest na to jakis sposób? :/ Jasne, od razu wina kompilatora. Kompilator poprawnie się zachowuje. Jeśli...
Nie wiem na ile jesteś w stanie ingerować w kod, ale... Cała obsługa transmisji po SPI powinna zostać przeniesiona do funkcji obsługi przerwania od SPI. Funkcje z pętli głównej powinny tylko przekazywać wskaźniki na struktury z danymi i callbackiem do "drivera" SPI. Driver SPI powinien atomowo zbierać te wskaźniki do swojego bufora i inicjować transmisję,...
A na taqblicy by się nie dało ? znaczy by się dało ;) ale od góry już by było zzałożenie że n urzytkowników tylko można ;) a podczas kasowania użytkownika z bazy po prostu zerował bym wszystkie elementy w tablicy przy takim indeksie w którym jest użytkownik do skasowania
QT używa sygnałów i gniazd do przekazywania obiektów (wartości) pomiędzy obiektami klas. W klasie, która łączy się przez RS musisz zadeklarować sygnał, a następnie emitować go, np na podstawie QTimer-a (będącego cz. składową tej klasy). Sygnał może mieć parametry, np. klasę (strukturę), która przekazuje interesujące Cię wartości. W klasie, która ma...
Ale taki zapis return nie ma najmniejszego sensu.... Jeśli chcesz zwrócić więcej wartości to albo zwracasz strukturę, możesz też klasę, albo po prostu przekazujesz wartości jako wskaźniki które mają zostać zmienione.
Sprawdziłem pod delphi że windows API umożliwia taką operacje jaką chcesz wykonać. A nie jest to przypadkiem tak że najpierw jest zgłaszany komunikat że chcesz "odznaczyć" stary węzeł i przychodzi on z parametrem jednego najwyższych elementów drzewa (który oczywiście nie ma parenta)? Sprawdź jeszcze jakiekolwiek pole "parenta" może jest taki haczyk...
Czemu nie przekazujesz tej struktury przez wskaźnik?
Właśnie przekazywanie złożonych struktur zawsze wykonuje się poprzez przekazanie adresu początku (a implementacyjnie: zmiennej wskaźnikowej).
Przykładów można szukać w SPL - można się w ten sposób dowiedzieć, w których rejestrach i co trzeba wpisać. Powoli szykuję tutorial do STM32 bez biblioteki, ale to jeszcze trochę potrwa. Kłopoty z bibliotekami są wielorakie. Ostatni kłopot - to to, do czego nas zachęcają przykłady z użyciem bibliotek, czyli deklarowania struktur jako zmiennych i pracowitego...
To: jpeg_mem_dest(&cinfo); // store jpeg image in memory ustawia wyjcie danych do pamięci RAM zdaje się. A gdzie jakiś wskaźnik? Czyżby tu: cinfo->dest = (struct jpeg_destination_mgr *) ? jpeg_mem_dest() jest wywoływana przez funkcję compress_jpeg(). Więc w niej należało by szukać tego wskaźnika. Z nagłówka funkcji widać że do funkcji...
przekazujesz strukturę, parametrem jest struktura (wskaźnik na nią). I pracujesz jak na strukturze (z danym wskaźnikiem). To kompilator troszczy się o to, jak zapisana jest struktura i jak zinterpretować twój zapis, aby odwołanie było poprawne. Zawartość struktury nie ma żadnego wpływu na wygląd wskaźnika. On zawsze jest wskaźnikiem na jakiś określony...
To w jaki sposób potem inny program w którym zdefiniowano taką samą strukturę ma wypełnić pole struktury o nazwie którego nie zna. Jak sam nazwa wskazuje; "struktura" to jakaś forma uporządkowanych danych. Jeżeli przekazujesz strukturę/rekord do jakiejś zewnętrznej procedury/funkcji/programu to przecież nie przekazujesz nazwy pól. Do tego służą pliki...
i również przekażę ją do funkcji przez wartość to kompilator może mi ją zoptymalizować i całą tablicę odłożyć na stos? Tablic nie możesz przekazać przez wartość w C tylko przez wskażnik. Tylko struktury i unie (abstrahując od typów podstawowych) są przekazywane przez wartość w C. Więc jak polem struktury będzie tablica to przekazując tę strukturę -...
Doczytaj to pod linkiem z tego drugiego wątku. Pamiętaj, że w C zmienne są przekazywane do funkcji zawsze przez wartość. Jeżeli przekazujesz strukturę jako argument funkcji (jak w pierwszym przypadku), to cała zawartość struktury zostanie przekopiowana (na stos) i na tej kopii będzie operować funkcja. Przy powrocie z funkcji ta kopia zostanie zniszczona...
Poza tym, do funkcji przekazujesz pojedynczą strukturę, a powinieneś przekazać wskaźnik do niej. No i powinno być "struct struktura" a nie "struktura". Wspomnę jeszcze, że program nie jest napisany w c++
Pokaz lepiej kod ilustrujacy twoj problem. Bo oczywisci emozna przekazywac adres do struktury lokalnej jesli z tej lokalnej funkcji jest wywolywana funkcja do ktorej ten adres przekazujesz. Ja bym obstawial, ze ta twoja struktura nie jest poprawnie inicjalizowana.
nie możesz zwracać dwóch wartości w taki sposób! Albo przygotuj strukturę, albo osobne funkcje, albo skorzystaj z referencji. To co widzisz, to po prostu śmieci z pamięci.
gdybanie może bez sensu: masz świadomość, że przekazujesz strukturę przez wartość, tzn od tej pory oryginał i kopia żyją własnym życiem? Masz twarde powody aby nie użyć np const & ? Zrzut debuggera to pośrednio pokazuje, temat założyłeś w/s RAM czyli domniemuję tam bys się ich spodziewał, a są ewidentnie w rejestrach. Mam wrażenie że volatile dla pól...
Twoja funkcja musi pobierac wskaznik do struktury GPS. Przykładowo jesli struktora nazywa się strukturaGPS: typedef struct{ int wysokosc; int szerokosc; int czas int packet3[8]; }strukturaGPS; //za jej pomocą tworzysz strukturę GPS: strukturaGPS GPS; //Funkcja bedzie wyglądała tak: void gps_dm_dms(strukturaGPS* GPSpointer...
Pomijając, że niepotrzebnie tworzysz jakieś tymczasowe wskaźniki (dlaczego po prostu nie przekazujesz adresu struktury?), to przed wpisem do UDR musisz sprawdzić czy w buforze nadajnika jest miejsce na kolejny znak. Kod jest błędny więc źle działa. michalko12 - bajki piszesz. Błąd kompilatora w tak trywialnym przykładzie? Dobre sobie.
Freddie Chopin : To nie jest aż takie proste. Z tego co ja zrozumiałem, to chodzi o zadeklarowanie typu zmiennej, coś pokroju: [syntax=C]typedef func_t (*func_t)(void *ptr);[/syntax] z tą tylko różnicą, że powyższe się nie kompiluje. Najbliższe rozwiązanie, to zwracanie struktury, wewnątrz której znajduje się wskaźnik na funkcję - strukturę można używać...
Witam, LAD np. do końcowego składania całego programu polegającym na np. wywołaniu bloków programowych (FB) do obsługi wejść, wyjść, alarmów, cyklu, komunikacji. SCL w obecnym projekcie do odczytu oraz zapisu wejść/wyjść. Mam kartę wejść oraz wyjść 32 kanały. Odczytuję podwójne słowo i wyciągam poszczególne bity. Plus jest taki że w takach mam tylko...
Przy czasach na poziomie sekund, minut to nie jest to żaden problem. Jeden timer ustawić na stałe przerwanie np co 100ms, w przerwaniu od tego timera przeglądać jakąś tablicę, w której każdy jeden element odpowiada jednemu programowemu licznikowi. Zmniejszać liczniki w elementach w tej tablicy, po czym po wyzerowaniu się wywołać jakąś funkcję. W moich...
przekazywać sprzęt przekazywać energia parametr przekazywać
bojler grzałka ariston rezystancja stojana agregat lafayette mikrofon
regulator obrotów wiertarki schemat piekarnik whirpool
Reddish-Brown Color Codes: Mahogany, Russet, Burnt Umber, Pigments & Trends Current Division Formula: Parallel Resistor & Impedance Calculations, PCB & Power Supply Applications