Dodano po 1 w ogóle to nie wiem po co korzystasz z 2ch funkcji jak spokojnie możesz to zrobić w jednej: [syntax=c] #include<stdio.h> #include <stdlib.h> typedef struct{ int x; int y; }polozenieS; int getXvalue(void); //your functions int getYvalue(void); int random(int min, int max); polozenieS* add_structure(void); int main(void) { int...
Witam! Jednym z rozwiązań jest zadeklarowanie pola struktury jako wskaźnika do np LEV-elementowych tablic typu "wskaźnik do char" np tak: [syntax=c]typedef struct { char *opis_msg; char *(*alarmy)[2]; } AL_TABLE;[/syntax]a nastepnie odwoływać się do nich następująco np: [syntax=c]printf("%s\n", (al_tab[2].alarmy[2])[1]);[/syntax] Analizując wiersz z...
Witam, nie można tak realizować inicjalizacji, ponieważ zastępujesz wskaźnik na strukturę wyrażeniem: { {MAIN_SCREEN_ID, MS_BTN_OK_ID,20,20,20,20,(u8*)NU... {MAIN_SCREEN_ID, MS_BTN_ESC_ID,40,20,20,20,(u8*)N... {MAIN_SCREEN_ID, MS_BTN_MENU_ID,60,20,30,20,(u8*)...
Obie metody są dobre. W metodzie A definiujesz wskaźnik na tablicę obiektów typu struktura, a następnie alokujesz pamięć na 10 tego typu obiektów. I to jest metoda prostsza. Metoda B jest bardziej złożona. Nie alokujesz od razu jednej tablicy na wszystkie elementy, ale tworzysz tablicę wskaźników, z których każdy dopiero wskazuje na obiekt typu struktura,...
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...
unsigned char * buf_o = &(Pointer->Buffer_O[0]... WriteFile( hCom, &(Pointer->Buffer_O[0]... ... ); Zmieniłbym nazwę pola Thread na CmdStopThread albo coś podobnego.
Nie wkleiłeś kodu, więc mogę tylko strzelać, że nie alokujesz pamięci na nowe wyrazy, tylko zapisujesz je w tych samych miejscach pamięci, co stare. W rezultacie masz co prawda nową strukturę key_tab, ale z tymi samymi wskaźnikami.
2. Co to oznacza Ten kod oznacza, że w zależności od tego która definicja została zdefiniowana (np. LED8), takimi danymi zostanie zainicjowana tablica led_params ledx , czyli dla LED8 będzie to równoważne: 1). Co to oznacza Kod: Ten kod oznacza że do trzeciej pozycji tablicy request zostanie wpisany wynik działania funkcji LED_GetBlinkState której...
Indeksy w C zaczynaja sie od zera, czyli 0 - count-1!
Jak ja lubię te długie nazwy, niby pomocne a tak naprawdę cholernie mylące... No ale nic. Zobacz co masz w funkcji main(): K * kolejka; kolejka=malloc(sizeof(kolejka)); a powinno być: kolejka=malloc(sizeof(K)); No przecież sizeof(kolejka) to raptem 4 bajty (czy tam ile liczy sobie zwykły pointer, jakim jest kolejka) i gdy potem w funkcji InicjujKolejke()...
Nie da rady. Zwróć uwagę, że w zasadzie typ argumentu funkcji nie jest taki sam, jak typ zmiennej globalnej (tablica), a tylko kompatybilny (de-facto wskaźnik na tablicę, chociaż to taka namiastka referencji w C). Jedynie możesz "zenkapsulować" obiekt, tzn. stworzyć globalną strukturę ze wskaźnikiem na tablicę i rozmiarem i coś takiego przekazać do...
Zadeklaruj stałą tablicę w PROGMEM, a ze struktury odnoś się przez wskaźnik.
[syntax=c] void TableCopy(unsigned char *PointerSource, int LengthDest, unsigned char *PointerDest); struct cmd { unsigned char length; unsigned char addres; unsigned char data[10]; }; unsigned char mem[12] = "Ala ma kota"; int main() { struct cmd commenda={10,20,'a','b','c'}; int j; TableCopy(mem, sizeof(commenda.data), commenda.data+3); for(j = 0;...
Wzorce projektowe nie mają poprawiać czytelności, tylko gwarantować niezawodność kodu (IMHO). Polimorfizm jest do zrobienia - w każdej strukturze (klasie) masz wskaźnik do tablicy funkcji (vtable) i zamiast wywoływać funkcje bezpośrednio korzystasz z tablicy wskazywanej przez strukturę. Wygląda to jeszcze gorzej niż brzmi, więc zamiast od razu skreślać...
Witam Piszę w C program dla MSP430 środowisko IAR . Napotkałem na następujący problem. Mam zadeklarowaną tablicę 10 elementów będących strukturami. Mam też procedurę wyrzucajacą przez port RS232 zawartość takiej struktury. Porcedura pobiera dane przez wskaźnik na element tablicy. I teraz gdy odwołam się do procedury w ten sposób : drukuj(&tablica[0]);...
Można też zrobić sobie ładną strukturę do przechowywania danych o przycisku, a potem z tych struktur utworzyć tablicę i dodatkowo tablice wskaźników na funkcje dla każdej akcji każdego przycisku i mamy wszystko rozwiązane w eleganckiej i szybkiej pętli w przerwaniu.
ponieważ operujesz wskaźnikiem na strukturę musisz wskaźnik wyłuskać (komunikat błędu linia 16) i dopiero możesz się odwoływać. Masz dwie opcje: 1/ (*Bufor1).rozmiar=0; 2/ Bufor1->rozmiar=0; Przy stosowaniu operatora u8 i = 2; char* ch = "test"; char ch2 = i[ch]; // kompiluje się i jest równoważne ch[i] Jednocześnie oznacza...
1.Co oznacza wskaźnik xCxx?? Wskaźniki wykazuje obecności struktur: T – tablica partycji E – wpis w tablicy B – sektor rozruchowy woluminu C – kopia sektora startowego/tabeli GPT F – Struktury podstawowe FS (na przykład, plik pierwszy rekord MFT dla NTFS) f – MFTMirr dla NTFS x – struktura jest nieobecny lub...
Masz rację . Myślałem trochę inaczej , że już sama nazwa wskaźnika jak funkcji na którą ma wskazywać przypisuje mu jej adres. Jest odwrotnie to nazwa może być wskaźnikiem. Tak jak w przypadku tablic. Tzn nie jest konieczny operator &.
volatile uint8_t tab1[10]; tab1 jest wskaźnikiem z niejawnym modyfikatorem const do tablicy zmiennych typu uint8_t z modyfikatorem volatile Nie doczytałem wcześniej. Innymi słowy moje wcześniejsze próby rozbiły się o const, to było nie do przejścia... Dodano po 58 struct test { .. } strTest; struct test *wsk = strTest; Pamiętaj, że...
Ale to nie są tablice tylko wskaźniki Tablic (w moim patrzeniu) to w C nie ma nieprawda, język C wspiera operacje na tablicach. To że mozna ją zdefiniować róznorako to inna inszość, dajmy przykład: char napis[20]; // jest tablicą dwudziestoelementową typów 'char' co nadaje się na trzymanie tekstów struct MyStruct struktury[20]; // jest...
#include <cstdlib> #include <iostream> using namespace std; struct struktura { public: int nazwa_p[20]; int ilosc_p; float cena_n; float cena_b; struktura(void) { for(int i = 0;i <= 20;i++)this->nazwa_p[i] = 0; } }; int liczy(struktura *tablica) { int suma; for (int...
Wykazujesz pewną niekonsekwencję - w strukturze masz zadeklarowaną tablicę znaków, natomiast przy odczycie kombinujesz ze wskaźnikami. Problemem jest chyba przypisanie [syntax=c]Pociag_wskaznik = Pociag;[/syntax] spróbuj: [syntax=c]strcpy( p[i].Pociag, Pociag);[/syntax]
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.
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ć...
Brak bugów, ale nie działa. Podpowiedzi?] Po pierwsze jak nie działa to oznacza, że ma bugi. Po drugie chociaż jedno zdanie co to ma robić i co próbujesz osiągnąć i definicja struktury (klasy?) "samochod" mogłaby zwiększyć szanse, że ktoś ci pomoże. Pierwsze co od razu sie rzuca w oczy... raz indeksujesz te tablice wskaźnikiem (iks), a raz wartością...
Mam na sztywno podać ich rozmiar? Też można. Niestety nie rozumiem tego: "No bo takie rzeczy trzeba robić "po ludzku", czyli bufor ręcznie (wcześnie), a następnie należy go podpiąć do tej struktury (zmienić tablicę na normalny wskaźnik). " Z tego zrozumiałem, że to ma być jednak wskaźnik, nie tablica. Zrób tak: [syntax=c] struct framebuffer { ... void*...
Cześć, korzystam regularnie ze struktur, tablic struktur i wskaźników na struktury. Wiem jaka jest różnica między strukturą i unią. Zastanawiam się jednak nad praktycznymi przykładami wykorzystania unii oraz połączenia unii ze strukturami. Czy dysponujecie jakimiś przykładami (embedded), gdzie połączenie unii ze strukturą pokazuje sens tego tandemu?...
ale jak już przy tym jesteśmy to rozumiem że ta operacja *(struktura.wsk) = ... zadziała tak jak chciałem? czyli podstawi wartość do zmiennej wskazywanej przez ten wskaźnik ??? tak a jeszcze przy okazji, gdyby ten wskaźnik był wskaźnikiem na jakąś tablicę i chciałbym go zwiększyć o N żeby wskazywał N-ty element tablicy, to hmmm mam to tak zapisać???...
Mam głupie pytanie: Jak można się wskaźnikiem poruszać wewnątrz struktury po komórkach tablicy ? Jak to napisać ?
Witam. Mam do napisania program, oto treść 'zadania' : Zdefiniuj typ strukturalny zawierający 3 pola (int, char, double ). Następnie zaimplementuj funkcje do obsługi zdefiniowanego typu: 1. losowanie – funkcja: a) pobiera jako argument liczbę N struktur, które mają zostad utworzone; b) dynamicznie alokuje pamięć na tablicę N wskaźników na struktury;...
Witam! Hmm... Na początku to trochę rozwlekłeś strukturę. Niepotrzebnie pola: imię, nazwisko, dzień, miesiąc, rok zdefiniowałeś jako tablice dwuwymiarowe a konkretnie niepotrzebnie dodałeś indeks 1 czyli tam, gdzie masz po 10. Powinieneś zadeklarować zgodnie z sugestią Kolegi krru czyli: [syntax=c]struct dane { char imie[30]; char nazwisko[30]; int...
Mam np. następującą strukturę: [syntax=cpp-qt] struct telefony { char marka[20]; float przekatna_ekranu; float waga; }; [/syntax] Teraz deklaruję oraz inicjalizuję tablicę struktur o nazwie np. nokia: [syntax=cpp-qt] telefony nokia[3] = { {"6300", 2, 91}, {"N82", 2.4 , 114}, {"Lumia 520", 4, 124} }; [/syntax] A jak najwygodniej zrobić podobną inicjalizację,...
Zależy mi na tym, aby odwołanie do wartości tablicy było za pomocą wskaźnika. Ponieważ mam funkcję która przyjmuje jako argument wskaźnik do struktury.
Dynamiczną liczbę wyników to w sumie tylko i wyłącznie przez struktury/klasy typu wektor bądź lista. Albo jako argument przekazać referencję na wskaźnik, funkcja pod danym wskaźnikiem tworzy tablicę o odpowiednim rozmiarze, wypełnia ją wynikami a liczbę wyników zwraca przez return.
Witajcie Piszę programik na AVR gdzie potrzebne mi jest menu wielopoziomowe. Wewnątrz struktury chciałbym przechowywać wskaźnik na tablice struktur o danym typie "menu_struktura". Nie mogę tego skompilować. Problem polega na tym ze już wewnątrz definicji struktury definiuje stałą o takim typie. Przepraszam, ale nie wiem czy wyraziłem się jasno. Popatrzcie...
Adres zmiennej _main_ram_start który jest równy wartości 0x20000000 jest rzutowany na wskaźnik na strukturę framebuffer. W konsekwencji wskaźnik fb też przyjmuje adres 0x20000000.
Pytanie: czy w omawianym przypadku jest jakaś możliwość zapisania we flash tablicy wskaźników do tekstów zapisanych we flash? Oczywiście. Zrób sobie tablicę ze stringami korzystając ze struktury.
(at)Marek_Gorecki to może zadeklaruj sobie strukturę z domyślnie ustawieniami jako const struct oraz zainicjaliuj wszystkie pola. Jak będziesz chciał wrócić do domyślnych ustawień to wystarczy ci jedno memcpy. Pomysł z tablicą i kopiowaniem w pętli nie jest do końca trafiony choćby w względu na pakowanie danych (bardziej jego brak😀) w strukturach.
Jeśli w pewnym momencie ilość będzie znana, jednocześnie niezmienna, to po prostu do malloc przekazać rozmiar jednej struktury razy ilość elementów, uzyskany wskaźnik można traktować jak tablicę: typedef struct { int jakies_pole; } sample_buffer; int main() { unsigned int i, cnt; i = 3; cnt = (rand() % 10) + 2;...
Idealna byłaby sytuacja, by w strukturze zebrać oprócz wskaźnika do odpowiedniej tablicy także wielkości: szerokość i wysokość oddzielnie. Próbowałem tego, ale same błędy wywalał.
Po kiego grzyba Ci pola bitowe? Nie wolno w ten sposób odwoływać się do kolejnych elementów struktury. Działa tylko dlatego, że przy kompilacji włączona jest opcja -fpack-struct . No i po co Ci struktura do trzymania kilku elementów tego samego typu? Od tego są tablice, a jeżeli chcesz koniecznie mieć tam wpisane nazwy, to sobie je możesz zdefiniować...
(at)idepopizze Chyba tak zrobię... Problem z tym, że jak dojdą jeszcze z 2 języki to kodu będzie od groma! Jak nic nie wymyślę to najwyżej w międzyczasie pomyślę nad implementacją menu pomysłu tadzika. po prostu szukałem pomysłu na zapis stałej... nawet jeżeli miałoby się to wiązać z resetem programu czyli: - wybierz język (0-3) - zapisz stałą do flash:...
Niestety nie wiem jak całkowicie wypełnić taką strukturę 5-cioma słowami uint16_t (ważne) nie odwołując się bezpośrednio do zmiennych w tej tablicy ? Możesz użyć unii, gdzie jednym elementem jest zmienna o typie Twojej struktury a drugim tablica zmiennych typu uint16_t. Innym rozwiązaniem jest deklaracja wskaźnika na tablicę pięciu uint16_t, wpisanie...
Proszę o zamianę kodu o dostępie indeksowym na dostęp wskaźnikowy: Dodano po 54 Hmm, pozamieniałem ale nie działa, muszę wcześniej określić jakiś wskażnik do tych tablic?
Dokładnie tak. Ustawiasz, zerujesz i testujesz za pomocą operacji bitowych. Użyj nowego typu danych (struktura ze wskaźnikiem na tablicę i z jej długością) i napisz sobie funkcje init(), set(), clear(), test(). Możesz automatycznie realloc()-ować pamięć przy próbie dostępu do bitu, który nie mieści się w zakresie tablicy. Pozdrawiam, Dr.Vee
Proszę o pomoc bo zaczyna mi znowu para lecieć uszami. Nie wolno mi używać VLA. Mam stworzyć macierz trójkątną za pomocą malloc w której każdy element styka się z każdym, najprościej to wyjaśnić dla korelacji. [syntax=cpp] 0 5432 1 1Cena 1 xxxx 2Cena 2 xxx 3Cena 3 xx 4Cena 4 x 5Cena 5[/syntax] Tworzę strukturę z macierzą wskaźników: struct struktura{...
Problem polega na zupełnie głupio napisanym programie. Skoro ptr to tablica wskaźników na struktury (czy tam wskaźnik na wskaźnik na strukturę), to tak właśnie powinien być zadeklarowany, a nie void*.... struct xyz; struct xyz *ptr[10]; lub struct xyz **ptr; 4\/3!!
Freddie Chopin, FIFO jest dobrym rozwiązaniem, myślałem, że uda się to zrobić w prostszy sposób. Niestety muszę przebudować wszystkie funkcje z tym związane, bo chcę zamienić aktualne rozwiązanie czyli dwie zmienne tablica i licznik danych w buforze na strukturę z tablicą, wskaźnikiem na ostatnio odczytany element i licznikiem danych w buforze. Mam...
Oh well, temat bardzo ciekawy, ale proponuję ignorować (at)spec220 Proszę nie karmić trolla. C nie może posiadać nakładki graficznej, bo wszystko tam jest jazdą po bandzie, chora koncepcja wskaźnika, tablicy, nie chronione struktury danych, archaiczna struktura kompilacji rodem z 195x-6x Jeden wielki Undefined Behaviour Podeślę jutro przykład (taki...
[syntax=c]tablica[i]=(int32_t)(strukt->p...
Po łebkach opisany algorytm... 1.Rysowanie wektora robisz tak a)rysujesz kreskę b)rysujesz trójkąt na końcu (pozycję obliczasz z wykorzystaniem zamiany wartości x/y c)wypełniasz trójkąt czarnym kolorem d)jeżeli jest włączona opcja przesuwania wektora to dodatkowo rysujesz 3 kólka (na początku, na środku do przesuwania całego wektora i na końcu) 2.Dane...
To może tablica/struktura/lista ze wskaźnikami na funkcje wyświetlające i czasem wyświetlania? Wskaźniki i czas możesz rejestrować dynamicznie podczas pracy urządzenia. Jeżeli wskaźnik NULL, albo czas NULL to pomijasz ten element. Pomocniczo możesz też operować maksymalnym indeksem N w połączeniu z indeksem roboczym zwiększanym w zadanych odstępach...
No tak ;) Wskaźnik to nie to samo co tablica wskaźników :) W sumie jednak nie wiem czemu sobie kompilator tego nie potrafi przeliczyć ;) Przecież zna typ wskaźnika. No tak, tablica wskaźników nie musi być liniowa przecież. wskaźnk: [syntax=c]osoba * osobaMem fscanf(we, "%s", osobyMem->imie); //odczyt[/syntax] tablica wskażnków: [syntax=c]osoba * osobaMemT[];...
Poczytałem trochę manuala do avr-libc dołączonego do najświeższego WinAVR i jak byk pisze tam, że aby zadeklarować i zainicjować tablicę łańcuchów w pamięci programu trzeba osobno zadeklarować samą tablicę jak i stringi ... Natomiast jeśli chodzi o struktury to powyższa reguła nie znajduje zastosowania! Ależ znajduje: tmf polega na stworzeniu typu...
Problemem jest char *cmd[]; - to oznacza tablicę wskaźników na char, a nie wskaźnik na char. A skoro tablica o nieznanej liczbie elementów to wszystko co masz po przecinku to kolejne elementy tej tablicy. Czyli usuwasz [] lub nazywasz pola, np. .ptrF=.
Witam; jestem początkującym, więc proszę nie śmiejcie się z pytania. Ale ledwo co w miarę dobrze zrozumiałem pojęcie wskaźników i zaczełem je używać a teraz chciałbym zrozumieć wskaźniki na funkcję. Tyle tylko, że kompletnie nie mogę zrozumieć ich sensu, do czego służą, kiedy się przydają. Czy mógłby któryś kolega podać mi jakiś uproszczony przykład...
Witam, pytanie dotyczy WinAVR (ATmega). Podprowadzenie Kompilator zawsze umieszcza kolejne elementy tablicy ( umieszczenej w RAMie) w kolejnych adresach. Zwiększając wskaźnik tablicy o 1 (dla typu char) mogę indeksować kolejne pola. Pytanie właściwe A jak jest ze strukturami. Np. taka struktura: typedef struct { unsigned char TablicaPol1[8];...
^ - wskaźnik na element array[2..9] - tablica o indeksach 2-9 (odpowiada klawiszom) TStringList - dynamiczna lista ciągów tekstowych Nie chce mi się wyciągać książki z Javy - za mało do czynienia, abym mógł to z pewnością w Javie zapisać. Klawisz przejścia czyli to, co z klawiatury telefonu naciskasz jest równoznaczne z elementem tablicy wskaźników...
Witam, Próbuje usunąć kilka warningów wyrzucanych przez kompilator, tyczących się przypisywania i inicjalizacji niewłaściwych typów ( brak rzutowania ). Nie jestem jednak pewien czy dobrze wykonuje rzutowanie. Mógłby ktoś rzucić okiem? 1. Przypisanie do wskaźnika na funkcję innego typu wskaźnik na funkcję: typy wskaźników: - void (*callback)(uint8_t,uint16_t)...
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 {...
W nawiązaniu do porad kolegi tmf proponowałbym coś w tym stylu (być może strach przed kwalifikatorem __flash wynika z braku przykładów kodu :?: : [syntax=c] // przykład jak używać kwalifikatora __flash do umieszczania // danych w pamięci programu i jak się do nich odwoływać // kod gotowy do odpalenia w symulatorze Atmel Studio 6 // można zaobserwować...
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...
Jeśli chcesz korzystać z więcej niż jednej takiej struktury zmienne first i last jako zmienne są potrzebne. Fakt, że taki bufor z dużym prawdopodobieństwem będzie jeden sprawia, że mogą to być stałe. Tablicę zadeklarowałem w main, bo jest to kod testowy, napisany na PC , ale w µc faktycznie będzie to raczej zmienna statyczna o zasięgu plikowym....
Nie jest przekazywana tablica, tylko wskażnik na jej pierwszy element. Napisanie tablic zamiast wskaźników nic tutaj nie zmienia. Jeśli chcesz by w trakcie wywołania została utworzona kopia, możesz, nieco sztucznie, zawrzeć tablicę w strukturze i taką strukturę przekazac przez wartość jako parametr.
Nie widzisz problemu bo nie wiesz o czym piszesz. Jeżeli coś wysyłasz to dobrze jest móc to też odebrać, chyba, że wysyłasz do /dev/null. Spróbuj tak przesłać cokolwiek to pogadamy. A żeby dostać się do poszczególnych bajtów struktury nie potrzebna jest unia, wystarczy taka konwersja: (uint8_t*)&struktura i już możemy się do nich dobrać przez wskaźnik,...
Mam kolejny problem z C na ARM'a. Jest taki kod: const BYTE USB_ConfigDescriptor[] = { //tu pełno danych }; DWORD tym = ((DWORD *) USB_ConfigDescriptor)*; który w skrócie opisuje mój problem. Otóż cała tablica trafia do pamięci programu (i dobrze) tylko pod losowy adres, a w LPC23xx jak odczytuję 32-bity to adres musi...
Program pobiera z pliku dwa dane do dwóch zmiennych - int N i char X. Tworzy tablicę N- elementową, potem alokuje tablicę N wskaźników na struktury i umieszcza je w tej tablicy. Struktura skłąda się z pola int i, char c oraz float f. Pole int jest losowane w zakresie -1000 do 1000, pole char to losowy znak wielkiej litery z zakresu od B do X, pole typu...
Przychodzi mi jednak do głowy szczególny przypadek. Powiedzmy, że ISR wyłącznie dodaje nowe elementy do tablicy struktur (wypełnia je danymi) i ustawia flagę dla pętli głównej, że pojawił się nowy element do wykorzystania przez nią. Pętla główną widząc ta flagę przekazuje do pewnej funkcji korzystającej z tych danych wskaźnik do nowo wypełnionego elementu...
Nie przekażesz tablicy struktur, ale możesz przekazać wskaźnik (pointer) do tej tablicy (i ewentualnie ilość elementów dla ułatwienia iteracji). W moim przykładzie przekazuję pojedynczą strukturę, a tablica struktur ma zakres globalny. Przykładowy (okropny, ale działający) kod: [syntax=c]struct dane { int a; char b; } dane; #define max 20 #include <stdio.h>...
Widzę, że dobrze rozumujesz, że nazwa tablicy jest wskaźnikiem do jej pierwszego elementu o numerze 0. Jednakże wkrada Ci się błąd w miejscu przypisania drzewo[1].wezel=kopiec; A to dlatego, że nazwa tablicy jest wskaźnikiem stałym i nie zmienisz adreu na który pokazuje. Jeżeli zmienisz definicję węzła na: pole *wezel; to potem możesz go sobie...
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++
Nie znam się na c++ (przeskoczyłem z c do c#), ale: istnieje do kompletu z malloc i free funkcja realloc - pozwalająca na zmianę wielkości zaallokowanej pamięci, jeżeli nie potrafi rozszerzyć bloku, to allokuje nowy i kopiuje do niego zawartość starego, po czym zwalnia stary. Z new bodajże nie da się tego zrobić, a mieszanie malloc i new nie jest wskazane....
Dodaj jeszcze receptę jak zaimplementować metody wirtualne Recepta: W wczesniej opisanej przykładowej strukturze udającej obiekt można zadeklarować wiele wiszących wskaźników - na inne typy (struct) lub funkcje. Gdy teraz postawimy jakiś wskaznik na funkcję z struktury A na funkcję która była dedykowana strukturze B, to mamy metody wirtualne... Wskazniki...
Ale się nakombinowałeś :). A więc tak: typedef struct { char *opis; uint8_t tab_arg[2]; } kl_menu_pozycja; const kl_menu_pozycja menu_pozycja_nr[2] PROGMEM = { {"telefon", {11, 12}}, {"rower", {23, 24}} }; Niestety nie możesz deklarować ciągu znaków "telefon"...
Dlaczego w ostatniej linii tego kodu: ..\src\program.c:95:1: error: initializer element is not constant ..\src\program.c:95:1: error: (near initialization for 'arr ??? Chce po prostu zainicjować tablice struktur jakimiś wcześniej określonymi strukturami (const) a tu dostaje wyraźny błąd że moje strukturki nie są const. Proszę o pomoc. Problem moge rozwiązać...
Wskaźnik to nic innego jak zmienna przechowująca adres innej zmiennej (lub tablicy, struktury, obiektu). Stosowana jest po to, o czym pisał frohme.
Przed instrukcją return (0); wywołujesz funkcję wypiszwynik bez argumentów a zadeklarowałeś, że ma otrzymać parametr typu struct karta. Gdzieś w programie musisz zadeklarować zmienną struktur typu struct karta wypełnić ją danymi po czym przekazać wskaźnik do niej funkcji wypiszwynik w polu argumentów.
Pod Windowsem, struktura WLAN_AVAILABLE_NETWORK z wlanapi.h zawiera pole wlanSignalQuality, gdzie siła sygnału zawiera się w granicach 0 (-100 dbm) - 100 (-50 dbm). Prześledź swoje przykłady i znajdź w nich WlanOpenHandle, WlanEnumInterfaces, WlanGetAvailableNetworkList. Ta ostatnia funkcja zwraca wskaźnik do wypełnionej struktury WLAN_AVAILABLE_NETWORK_LIST,...
Jest tablica lub, jak kto woli, struktura _ROM, a w LPC13xx ta struktura ma jeden element - pUSBD. W innych LPC elementów jest więcej.
Zdaje się, ze zamiast: for(k; k<tab.m; k++) { free(&tab.tablica[k])... } for(l; l<tab.n; l++) { free(&tab.tablica[l])... } powinno byc: for(k; k<tab.m; k++) { free(tab.tablica[k]); } free(tab.tablica); Nie jestem pewna czy tab.m...
no tak samo, tyle że w drugą stronę, czyli: 1. bezpośrednio: char a = aaa.zn[0]; 2. przez wskaźnik: char a = aaa->zn[0];
Bardzo dawno nie pisałem w C++, nie jestem całkowicie pewien czy są tam tablice wielowymiarowe, czy tylko tablice tablic (to całkiem co innego). Tam gdzie tablice wielowymiarowe (t #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int t[128]; t[0] = 11; t[10]...
Małe poprawki do kodu powyżej - sizeof, a nie sizeoff. Dereferencję wskaźnika można też zrobić tak: adr[i], co od razu sugeruje użycie zamiast struktury tablicy - skoro wszystkie elementy są takie same.
Witam! 1) Żle zdefiniowana struktura! Pola tejże struktury zostały zadeklarowane jako 10-cio elementowe tablice wskaźników do elementów typu char a nie jako dziesięcioelementowe tablice znaków. Musisz usunąć "gwiazdki". 2) Po każdej instrukcji scanf badaj: if (slowka.slowoX[0] == '\0') /* ZLE! */ Pozdrawiam KG
Noo właśnie od 2 dni stale czytam ale nie bardzo mi działa. To może inaczej jak zapisać jakiś stały ciąg umieszczony w tablicy np. char Nazwa[9]; ?
Dlaczego nie działa rzutowanie tego typu ? A mógłbyś wyjaśnić, co znaczy nie działa? Bo zazwyczaj działa... [edit] Musisz tylko pamiętać, że kompilator jest uprawniony do wyrównywania ułożenia pól w strukturach w zależności od wymagań architektury procesora. Jest prawdopodobne, że pole wskaźnika payload zostanie przesunięte w pamięci (wyrównane) do...
Witaj W sumie to zastanawiam się czemu forma To string "Testowy" ma długość 8 (7liter + 0 na końcu)znaków, a Twoja tablica ma tylko 5 elementów, więc przekraczasz zakresy tablicy i wpisujesz dane bez kontroli w pamięci mikrokontrolera.
Ja w podobnym projekcie zadeklarowałem sobie tablice wskaźników w pamięci programu. Dla zmniejszenia rozmiaru pamięci wskaźniki były typu void. I podczas odczytu zmiennych : np funkcjią 0x03 pisze sobie pętle która ma być wywoływana od adresu początku przesłanego w ramce(offset) do adresu końcowego obliczonego przez dodanie ofsetu i segmentu - oto część...
Dlaczego trzymasz czcionki w formacie 565? Przecież wspomniany program zapisuje czcionki w formacie mono + ew. antialiasing. To zajmuje dużo mniej miejsca. Jeżeli chcesz jeszcze poprawić wydajność, to możesz ręcznie zmodyfikować pliki z fontami poprzez uproszczenie ich struktury. Możesz też użyć innego programu, np. FontCvt od Segger'a, który pakuje...
witam, MAm przygotować aplikację z danej tematyki: 1.Podstawowe elementy języka – zmienne i ich typy, operatory, instrukcje sterujące, pętle, funkcje, tablice. 2.Tworzenie typów złożonych –struktury, unie, tablice struktur, wyliczenia. 3.Przetwarzanie strumieniowe – operacje na plikach tekstowych 4.Przetwarzanie strumieniowe –...
// tablica "napis" znajduje się w PROGMEM - w kodzie jest pgm_read_byte: OK char napis[] PROGMEM = {"test"}; // zmienna "text"również jest w PROGMEM: wywołanie fun(text.wsk) odwołuje się do złej pamięci t_text text PROGMEM = {napis}; zamień: fun( text.wsk ); na coś pokroju:...
Niestety z plikami o takich rozmiarach jest problem, w przypadku usunięcia takiego pliku z pominięciem opcji kosza, równiez usuwany jest wpis z MFT (Master File Table) czyli głównej tablicy plików.Każdy plik w systemie NTFS jest opisany przez jeden lub więcej rekordów przechowywanych w specjalnym pliku o nazwie - główna tablica plików .Rozmiar rekordu...
Należy pamiętać o 2 rzeczach, języku C samym w sobie - jak budować funkcje, przekazywać zmienne, jakie są typy zmiennych i z których korzystać, jak korzystać ze struktur, tablic i wskaźników, jakie operatory itp. Oraz rzecz druga - jak korzystać z konkretnych rozwiązań dla AVR - piny, porty, rejestry, liczniki, przerwania, pamięć EEPROM, pamięć FLASH....
Trochę się zmaieszałem. Pomocy :-) chodzi mi o rzutowanie wskaźnika np mam taka deklarację (uint32_t *) ?
Parametrem, przez który jest zwracana wartość, nie jest BOOL ale wskaźnik. W zależności od pierwszego parametru musi on wskazywać na różne struktury. W tym specyficznym przypadku faktycznie powinien być to wskaźnik na BOOL a nie na tablicę znaków, jak zapisał kolega. Niemniej nie powoduje błędów taki zapis, choć jest niezbyt poprawny, a odczyt zdecydowanie...
Witam Dopiero wstałem, więc może tego nie widzę... ale gdzie tablica jest zdeklarowana? Wskaźnik jest, tablicy nie widzę. eq[1+j] = dv.quot; - już w pierwszym przebiegu pętli (zerowym) nie odnosisz się do zerowego elementu tablicy. Niestety nie znam struktury div_t dv :/, więc nie wiem co tam robisz. Za pomocą dzielenia modulo zrobiłbyś to szybciej...
Witam, mam do napisania program w języku C++. Polecenie wygląda tak: 1) Definiujemy struktury. 2) Tworzymy tablice przechowującą wskaźniki na strukturze z punktu 1. 3) Tworzymy funkcję: Dodaj i Wyświetl - dodawanie nowej struktury do tablicy, - wyświetlenie struktur z tablicy. Mój problem polega na tym, że w swoim kodzie używam zmiennych globalnych....
Nie bardzo rozumiem , jaki cel chciałbyś osiągnąć :( Do czego są Ci potrzebne , dane w "tab_mala" :?: A jeśli chodzi o wskaźniki , to możno z nimi robić właściwie wszystko.Ustawić na dowolny adres w pamięci , bez względu na to , czy będzie to tablica , struktura ,unia , inna zmienna , itp. Piotrek
Tomqu z podanych przeze mnie linków ściągnij przykład 04 i podmień w nim main.c na: [syntax=c]#include"main.h" //**************************************... #define BUF_SIZE 8 // definiujemy bufor o rozmiarze 8 bajtów (musi byc potega dwójki dla tego sposobu!!!) // definiujemy maskę dla naszego bufora #define BUF_MASK...
tablica struktura wskaźnik struktura tablica wskaźnik
warsztat pomysły wymiana silnika nawiewu mercedes lusterko prawa
stabilizator lm7812 renault mascott
Kod błędu na płycie Schott Ceran - dwa palniki nie grzeją Kod błędu PWM9101-12 w koparce Volvo EC160