lcd_string jak widać w kodzie potrzebuje jako parametr wskaźnik na tablicę znaków. Czyli nie to co zawiera UDR - znak. Potrzebujesz użyć funkcji wyświetlającej znaki - poszukaj. Albert
Z przykazań C: 1. Nazwa tablicy jest adresem do jej pierwszego elementu 2. Tablica znaków, to tablica znaków, a string to wskaźnik do pierwszego znaku w ciągu znaków zakończonego znakiem '\0' dlatego proponuję tablicę wskaników do znaku, gdzie każdy z tych wskaźników inicjalizujemy wartością NULL, a string przypisujemy dynamicznie z kopca char *tablica[34][22]...
Witam. Uczę się programowania w c++ z "Symfonii C++". Mam problem z jednym z zadań podsumowujących z działu "wskaźniki". Proszę o pomoc w rozwiązaniu tego zadania. Napisz funkcję, która zarezerwuje 10 elementową tablicę, a jej adres przekaże wskaźnikowi o nazwie linijka. Ma to być tablica, w której można przechowywać wskaźniki do tablic znaków. Następnie...
Zadeklaruj stałą tablicę w PROGMEM, a ze struktury odnoś się przez wskaźnik.
No to nie widzę tego inaczej, jak zrobić metakompilator, który przeparsuje kod i utworzy właściwą tablicę wskaźników do używanych znaków. Z poziomu gcc bezpośrednio tego IMHO nie zrobisz, chyba, że decydydujesz się na rozwiązanie uciążliwe - zamiast znaków stosować wskaźniki na nie.
start: mov dx, al mov ah,9 int 21h Nie rozumiem pytania o konwersje, ale moge podpowiedzieć że podany wyżej kod raczej nie zadziała, bo są w nim 2 błędy, składniowy i logiczny. 1. Nie można skopiować wartości 8 bit do wartości 16bitowej 2. Funkcja 9 int21h przyjmuje w rejestrze DX wskaźnik do tablicy znaków a nie wartość.
Zapewne o to chodzi. Czy Twój wyświetlacz naprawdę ma tylko 15 znaków w wierszu?
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]
Widać nie rozumiesz o co chodzi. Ani ja ani Dr.Vee nie mówimy o przeniesieniu komunikatów do ramu, tylko tablicy wskaźników na komunikaty. Najpierw musisz pobrać wskaźnik z tablicy (ponieważ napisów jest więcej), potem dopiero wykorzystując wskaźnik odczytujesz ciąg z pamięci programu. Jeśli nie chcesz przenosić tablicy wskaźników, to niestety musisz...
A może "buffor_danych" do którego wrzucasz kolejne bajty to też tylko wskaźnik zamiast tablicy (niezainicjowany lub ustawiony na 0)? To tłumaczyłoby dlaczego przypisanie ramka_danych do stałej tablicy znaków daje dobry wynik a ustawianie zawartosci kolejnymi bajtami się nie udaje. (podobnie do poprzedniego błędu) Przy okazji, sizeof(ramka_danych) to...
Witam Powinno być Koniec[licznik]=Tablica2[Dlu... ponieważ DlugoscTablicy-licznik wskazuje na element zerowy kończący łańcuch, który był podstawiony pod zmienną w momencie jej deklaracji. W związku z tym pierwszym elementem tablicy Koniec był znak końca łańcucha i dlatego MessageBox nic nie wyświetlił. Dodano po 17...
ANSI C? To dobre ;) Przecież Twój kod to C++ (i do niezgodny ze standardem). Możesz ewentualnie zwrócić wskaźnik do dynamicznie alokowanej tablicy znaków, ale wtedy kod wywołujący funkcję będzie odpowiedzialny za zwolnienie tej pamięci. Pozdrawiam, Dr.Vee
Ale przesunięcie musisz realizować na wskaźniku na typ dwubajtowy!
ja to z reguły tak robie: std::vector<char> tablica_vector; tablica_vector.resize(27); u Ciebie tą drugą linie wrzuć do konstrutora. gdyby nie działało to spróbuj utworzyć wskaźnik do vectora w klasie i później przydziel pamięć: std::vector<char>* tab; // to gdzies w klasie tab = new std::vector<char>;//w...
Nie. W ten sposób rezerwujesz sobie po 100 wskaźników w tablicach. Tablicę znaków deklaruje się prościej: [syntax=c]char tekst[100]; char zaszyfrowany[100]; [/syntax] Użycie nazwy tablicy (bez indeksu) to to samo, co użycie wskaźnika. Więc, po prostu: [syntax=c]scanf("%s", tekst); printf("%s", tekst);[/syntax] Mała dygresja: Po co ci dwie tablice -...
Edit:Down: Kolego Moderatorze. Użycie słowa functions było celowe, chodziło mi o podkreślenie że chodzi o funkcje pisane a nie funkcje zaimplementowane w C, takie jak printf. Błędu ortograficznego nie było żadnego, chyba że Kolega Moderator uważa za błąd ortograficzny brak polskich znaków, w takim razie Kolega wybaczy. Jeżeli ktoś żyje poza granicami...
czym to jest spowodowane może ktoś wie?? Tak, ja wiem. ... Co rozumiesz pod pojęciem "meni"? "meni" jest wskaźnikiem na znak. W przypisaniu do "meni_glowne" wskaźnika od malloc uzyskujesz miejsce na 5 znaków (zresztą sam jawnie napisałeś: 5*sizeof(char) ) - indeksując "meni_glowne" wychodzisz poza zakres (dla 5 elementów są one od 0 do 4) dodatkowo...
Raczej: [syntax=cpp]const char* tablica = "costam";[/syntax]W C++ string literals ("costam") są typu const char[n], a próba ich modyfikacji (np przez wskaźnik do nich) wykopie nas do świata niezdefiniowanego zachowania, nie mówiąc już o tym, że na nowszych kompilatorach nareszcie dostaje się przynajmniej ostrzeżenie za taki kod, więc... Po prostu dodaj...
(at)tmf: ...ale autor tematu napisał, że print_str(strr też mu nie działa prawidłowo. Myślę, że prawdopodobnie kompilator ma problem z określeniem rozmiaru struktury i - co za tym idzie - obliczeniem wskaźnika do następnego elementu tablicy struktur. Proponuję dodać w strukturze rozmiar ciągu znaków: Musisz to tylko przerobić na swoje potrzeby, czyli...
udaje mi się to jedynie tylko w tej petli w której go uzyskuje (tam gdzie jest token i wsk z jego zawartością ) a nie moge odesłac zawartosci wsk w innej funkcji Jakiej pętli? Chodzi Ci o funkcję "analizuj_dane_id"? Niestety, ale bez znajomości podstaw języka C daleko nie zajdziesz... albo będzie Cię to kosztowało sporo nerwów ;) "wsk" jest wskaźnikiem...
void LCD_WriteText(char * text) 1. Ta funkcja jako argument ma wskaźnik ty podajesz jej wartość. 2. działa ono poprawnie dla napisów czyli tablic z ostatnim elementem = 0 (słownie ZERO) Lepiej wykorzystaj funkcję LCD_WriteData();
[syntax=C]char *menu_main[5];[/syntax] W ten sposób deklarujesz tylko tablicę wskaźników na ciągi znaków. Nie jest w żaden sposób alokowana pamięć pod właściwe ciągi znaków, stąd użycie sprintf nad tymi wskaźnikami jest niepoprawne (chyba, że wcześniej przypisano by wskaźnikom jakieś poprawne wartości). Ostatni kod, w którym przypisujesz ciągi znaków,...
Kompilowało się na AVR, a tutaj nie, to fakt. Potraktujcie to raczej jak pseudokod, chciałem pokazać tylko o co mi chodzi. Te tablice są dość spore, bo zawierają zestaw wszystkich znaków, dużych i małych liter lecz nie jest to cała tablica ASCII. W programie chcę się do tego łatwo odwoływać, potrzebuję adres pierwszego piksela pierwszego znaku każdej...
..... ale nie wiem jak zmienić tablice w samej funkcji (przełączyć ją z jednej na drugą, jeśli wywołamy funkcję z parametrem 1 na końcu). Wystarczy zastosować wskaźnik do tabeli i w zależności od parametru przypisać mu adres [pierwszej lub drugiej tablicy. Co do samego "zdekodowania" danych z tablicy to niestety trzeba się dowiedzieć "co autor miał...
Z przetwonika ADC otrzymuję wartość 16 bitową (ADC1->DR), którą chce następnie wyświetlić na wyświetlaczu. Funkcja wypisująca stringi na LCD pobiera wskaźnik do tablicy, ciagu znaków void Text (uint8_t *str) Wywołanie: Text ("dowolny tekst"); Potrzebuje w jakiś sposób przekonwertować typ 16-sto bitowy do tablicy znaków które...
Po pierwsze proponowałbym w strukturze już nie używać wskaźników tylko od razu tablic typu char o zadanej długości, bo alokacja pamięci dla każdego elementu struktury jest uciążliwa i może prowadzić do błędów. Poza tym w przypadku kopiowania ciągów znaków należy użyć funkcji strcpy() zdefiniowanej w pliku nagłówkowym strings.h. No i po trzecie, w definicja...
No niestety nie błąd przepisujących listingi :) widzisz gdyby każdy ciąg znaków był zakończony 0 to nie potrzebny byłby drugi argument funkcji WyswietlLCD prawda? Normalnie wyświetlałbyś napis tak długo aż znak będzie miał wartość 0. Nie wszystkie kompilatory zgłoszą Ci błąd przy podaniu ciągu znaków dłuższego niż zadeklarowany rozmiar tablicy, co więcej...
Nie wiem czego nie rozumiesz ? Na szybko to dwa pierwsze działają zgodnie z opisem, niewielka niepoprawność jest w pierwszym, w którym nie terminujesz pobranej liczby do tablicy, [syntax=c] table[t][k] = 0; [/syntax] umieść to przed t++; a po pętli for. Wynik wydaje się być prawidłowy. Drugi działa, z małą poprawką dwóch pierwszych linii [syntax=c]...
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
po pierwszy taka tablica to marnotrawstwo pamięci. Deklaruje się napisy a potem deklaruje się tablicę zawierającą wskaźniki na te napisy. Ale jeśli już się upierasz to należy skorzystać z tablicy 2-wymiarowej.
Witam! Nie wiem w czym problem. W końcu tablice można traktować identycznie jak wskaźniki to znaczy że jak masz tablicę KeywordTab[] to zapis *KeywordTab można traktować jako odwołanie sie do pierwszego (a właściwie zerowego) elementu. czyli KeywordTab[0] jest tożsame z *KeywordTab, KeywordTab[1] z *(KeywordTab + 1) itd. Wskaźniki i tablice są na tyle...
wsk "cos tam" jest napisem stałym typu const char[8], próbujesz przypisać wskaźnik do tego napisu do zmiennej char[20]. Mają inne typy - inne rozmiary - i nie ma wbudowanego operatora =, który by implementował kopiowanie. Zamiast tablic znaków może lepiej użyć std::string? Wtedy takie coś by zadziałało, bo std::string ma operator=(const char*);
Tylko tutaj wymiataczy się wypowiada, a nikt nie zwrócił uwagi na niezwykle istotną sprawę. Przekazanie tablicy : char text[2]={'o','k'}; do funkcji LCD_WriteText, poza wyświetleniem napisu "ok" objawi się również wyświetleniem dalszej zawartości pamięci RAM, aż do napotkania pierwszego bajtu o wartości zero. Po prostu funkcja przyjmuje...
char i unsigned char to w tym wypadku ten sam typ (domyślnie AVR Studio kompiluje z -funsigned-char). Jak już to w takich wypadkach kompilator zgłasza ostrzeżenie, a nie błąd. Błąd zgłasza np w przypadkach, gdy funkcja wymaga wartości, a dajemy jej wskaźnik lub odwrotnie, czyli beznadziejnych. O sensie (lub jego braku) podawania jako argument funkcji...
Problem w tym, że właśnie na gets() może Ci się wywalić przy nauczycielu. Podajesz do gets() bufor o długości 5 znaków, a on weźmie i wpisze 180 znaków - i co? I pewnie się wywali. :P Twoje szczęście, że akurat kolejność operacji wygląda tak, że nawet jak gets() "trochę" nadpisze zmienne (tablica b, l, wskaźniki FILE*), to sprintf() czy fopen() to zaraz...
Nie trzymasz się typu zadeklarowanego w funkcji oraz używasz funkcji do wysyłania "łańcuchów" (czyt. przekazywany jest wskaźnik na tablicę z ciągiem znaków) żeby wysłać jeden znak. Poprawne użycie byłoby zapewne takie char cyfra=7; //binarnie 00000111 char tablica[5]; int liczba=1234; LCD_WriteData(cyfra+0x30); //znak ASCII dla cyfry 7 czyli 0x37 itoa(a,tablica,10);...
1. Co to za funkcja "substr4"? Pomyłka przy przepisywaniu? 2. Jak zwalniasz pamięć przydzieloną przez malloc? Jeśli zapomniałeś, to będzie kaszana. 3. "strcmp(*id_1,*id_2)" -> id_1 oraz id_2 to tablice. Odwołania do nich traktuje się jak wskaźniki do pierwszego bajtu *id_1[0], więc powinno być "strcmp(id_1,id_2)" 4. Na twoim miejscu napisałbym samodzielnie...
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...
Generalnie to z tą pętlą coś nie tak - gdzie jest wartość temp dla pierwszego przebiegu? A zasadniczo to po prostu organizacja pamięci. Wskaźniki na ciąg znaków przy użyciu wyświetlania powoduje wyświetlanie kolejnych znaków począwszy od wskazanego adresu aż do napotkania \0. Tablica też jest wskaźnikiem sama w sobie.
W języku C operatorem == nie da się porównać ciągów znaków, a tak Ty próbujesz to zrobić: //ciach... if (argv[1]=="z") //ciach... if(argv[1]=="o"... //ciach... Jak już pisałem wcześniej argv jest tablicą wskaźników na ciągi znaków, czyli argv if(argv[1][0] == 'z') //albo if(*argv[1]...
Kolejne pytanie: Jeśli chcę odebrać kilka znaków z klawiatury to powinienem wpisać to w jakąś tablicę? Jeśli chcę wysłać do PC cały wyraz to jak to robić? Możesz to zrobić różnie. Zależy czego potrzebujesz i na ile jesteś wprawny w programowaniu w C. W każdym z przypadków trudno jednak będzie się obyć bez tablic dla ciągów znaków odbieranych i wysyłanych....
nie jestem tempakiem i to jest . Jeżeli nie miałbym tego to by wszystko sie posypało a nie mam problem z odczytaniem tylko z tym Open... to moment - nie masz problemu z odczytem, tylko z open? nie rozumiem... i w której linijce ten bład? Przeczytaj w pierwsze code w moim poscie a sie kapmiesz o co chodzi;P ifstream infile; int rozmiar = 1000; //dla...
Witam Generator był zainicjowany, tylko zjadłem linijkę przy czyszczeniu z komentów i wklejaniu kodu. Ale twa podpowiedź dała mi trochę do myślenia i znalazłem błąd - przy wpychaniu znaków zamieniłem (w funkcji VGA_CharGen_Init) odwołanie się do tablicy przez wskaźnik, na pobieranie wartości przez pgm_read_byte. Teraz wszystko śmiga. Raz jeszcze dzięki...
Tak jak napisałem, jeżeli tylko rozbijasz tekst w buforze na np. wyrazy, to prawdopodobnie sama tablica wskaźników Ci wystarczy. Ale to jednoznacznie z Twojej pierwszej wypowiedzi nie wynikało. Jeżeli wczytujesz ciąg znaków z wejścia, to najpierw musisz zaalokować bufor (tablicę), gdzie ten ciąg wczytasz. Teraz możesz albo przydzielić b. dużą tablicę,...
Deus, źle zrozumiałeś co to ma robić, strchr znajduje wystąpienie znaku i zwraca wskaźnik na niego, a następnie wpisywane tam jest zero, czyli tak jak powinno być - a twoja modyfikacja niweluje wszystko, bo wstawiasz zero na początku stringa czyli praktycznie kasujesz go. A co do tematu, z tego co rozumiem odczytujesz z urządzenia od 6 do 15 znaków...
Dzięki za przykład działa dobrze, tylko nadal mnie zastanawia czemu to nie działa, tym bardziej że ten kod powyżej jest o wiele łatwiejszy. Chyba wartość kodu ocenia się w pierwszej kolejności na podstawie jego skuteczności, a nie tego, czy jest łatwiejszy. No bo co z tego, że jest łatwiejszy, jeśli nie działa? Przykład, który podałem nie jest mojego...
W zasadzie tak nie należy robić. Dwie gwiazdki obok siebie to już jest podejrzane, a le trzy.... ;) Ale jeżeli chodzi tylko o gimnastykę z językiem C, to trzeba to zrobić tak: Dodano po 28 Tak, taka jest składania. Zmienna tablica wewnątrz funkcji funkcja() jest wskaźnikiem na zmienną tablica z funkcji main() . Trochę mylące jest użycie tej samej nazwy...
Takie operacje możesz zrobić np. za pomocą memcpy (ręcznie musisz dodać null) lub strncpy - char *strncpy(char *s1, const char *s2, size_t n). Funkcja ta kopiuje n znaków z łańcucha s2 do s1, początek łańcucha s2 możesz określić poprzez &s2[nr znaku), tak więc twój przykład wyglądałby następująco: strncpy(string9, &string8[5], 4); Pamiętaj, że łańcuchy...
(at)sandrak24 Niestety, dalej nie wyjaśniłeś, co chcesz osiągnąć i trzeba się domyślać. Z Twojego programu paru rzeczy nie rozumiem bez tych wyjaśnień. 1. Znak jest zdefiniowany przez 16*5 = 80 bitów? To znaczy, że jeden znak zajmuje dwie matryce? 2. W programie obsługujesz trzy układy MBI. Masz ich więcej i planujesz obsłużyć wszystkie? Dobrze rozumiem?...
czyli jesli dobrze rozumiem void zapamietaj (char * edit_txt) { strcpy(nazwa_w_klasie , edit_txt)} ok, tylko jak mam teraz przechwycić tekst z edita? Tak? try { string tabl_char=Edit1->Text; } //potem gdzieś dalej... void zapamietaj (char * edit_txt) { tabl_char=&edit_txt strcpy(nazwa_w_klasie , edit_txt) } gdzie: nazwa_w_klasie - tablica char np na...
pewno robię jakiś błąd wynikający z braku wystarczającej wiedzy o wskaźnikach... W takim razie należy doczytać o wskaźnikach, zobaczyć przykładowy kod. http://pl.wikibooks.org/wiki/C/Wskaźniki... Kompilator powinien wywalić warningi do kodu, który dałeś. Nazwa tablicy jest również wskaźnikiem na nią. Ciąg znaków (string) wczytuje się za pomocą pola %s...
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...
Niepokoi mnie nadmiarowa konwersja bcd2dec - przy odczycie godzina jest zamieniana na dec, więc później już nie ma potrzeby. Akurat w tym przypadku nic się nie powinno stać (górny nibble jest zawsze równy zero), to po po co obciążać procek dodatkowymi obliczeniami oraz narażać się na błędy przy zmianie trybu na 24 godziny.. wszystkie konwersje najlepiej...
Proszę o pomoc, bo porady w internecie nie sprawdziły się i kod nadal nie działa. Chcę przekazać z programu głównego do funkcji wskaźnik na tablicę char'ów, w funkcji wywołać realloca, zwiększyć zarezerwowaną pamięć i potem w funkcji zmodyfikować tę tablicę (dołożyć z przodu "0x" a całą resztę znaków przesunąć w tablicy o dwa pola - żeby zrobić miejsce...
Piszesz, że jesteś początkujący więc będzie Ci trudno zrozumieć wyjaśnienie bez znajomości przynajmniej wskaźników i tablic. Przeczytaj najpierw podręcznik dla tej funkcji - [url=http://www.cplusplus.com/reference/... Funkcja wpisuje do zmiennej "bufor" (tablica znaków - cstring) odpowiednie dane (godzinę) ale żeby nie...
Nie ma sprawy. :(mam problem... wszystko pieknie działa;)super wrecz. dodałem reszte znaków;)prosze powiedz mi jak dodac znak.. spacji. przerwy miedzy stringami wyrazówSad niemoge tego nigdzie znalezc:)a jest to nie zbedne . Znak spacji ma w kodzie ASCII wartość 32 (0x20). Oznacza to, że w tablicy morseTab pod pozycją 32, czyli: morseTab[32]...
Witam! Musisz inaczej podejść do tego tematu. Potraktuj macierz bin[4][9] jako czteroelementową tablicę wskaźników do elementów typu char. A ściślej: do czterech łańcuchów znaków, z których każdy zawiera 8 znaków plus '\0' jako znacznik końca łańcucha. W języku "C" tablice i wskaźniki są ściśle ze sobą powiązane, do tego stopnia, że mozna traktować...
Witam W pamięci dostępnej dla uP trzeba zapisać tablicę fontów i kod ASCII jest wskaźnikiem do zaadresowania poszczególnych znaków, które są przepisywane do pamięci obrazu a z tej pamięci odpowiedni podprogram przesyła dane na wyświetlacz.
Wydaje mi się, że chodzi o to, że cyfry temperatury wyświetlają się zbyt często (na wszystkich pozycjach). Należy je wyświetlać tylko w pozycji com==0 i com==1 zamiast: [syntax=c] konwersja(&myTemperature, &tablica[3], &tablica[2], &tablica[0], &tablica[1]); temperatura[0] = tablica[0]; temperatura[1] = tablica[1]; for (int j = 0;...
Ja bym zdecydowanie przeszedł na integerowe indeksy w buforze jako tablica. Z latami mam coraz mniej ochoty na arytmetykę wskaźników. Z gwiazdkami *) precz. *) w nadmiarze.
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.
Widzisz, tak to jest z tutorialami w necie, że nawet jak są dobre to nie poruszają wszystkich kwestii. Jednak co książka to książka, więc weź pod uwagę wcześniejsze sugestie kolegów. Generalnie tablice są zawsze przekazywane jako wskaźniki, de facto nazwa tablicy jest wskaźnikiem. Stąd też twoja konstrukcja &napis[] jest co najmniej dziwna. Masz też...
A tak? Przecież napisał, że jak poda rozmiar to działa. Poza tym w Twoim programie też się "tekst" nie mieści w tablicy i brakuje mu dzięki temu terminatora. Dodatkowo nie widzę sensu w posługiwaniu się kopią wskaźnika na tablicę, co to zmienia?
To nawet nie jest jego fragment :P Gdy zrobię tak: char text To jest w zasadzie błędne. Powinno być: [syntax=c]text[0] = 'A'; text[1] = 0; [/syntax] albo [syntax=c]char text[12] = "A"; [/syntax] Pojedyncze apostrofy oznaczają literkę, podwójne - ciąg znaków jako tablicę wskaźnik (który oczywiście w szczególności może być jednoznakowy). A [syntax=c]LCD_WriteText("012345");[/synt...
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;...
Między "???????" a PYTANIE dopisałem pewne treści!!!! Wiem, ze pod char *opis nie jest umieszczany cały tekst, tam jest umieszczany dwubajtowy wskaźnik do początku tego tekstu. To jest ta sama zasada jak w const char *napis menu pozycja_nr to to samo co napis menu pozycja_nr to to samo co napis Pomiędzy ??????? a PYTANIEM opisałem co odkryłem pod tym...
Jeśli FRAME_SIZE ma wartość 22, przerwanie wykona się gdy wyślę 22 chary przez UART ? A jeśli wyślę 21 to gdzie one będą się znajdowały? W jakimś buforze ? Obsługą przerwania jest sama funkcja HAL_UART_Receive_IT() ? Po wysłaniu tych 22 znaków przepisze ona je do tablicy na którą podałem wskaźnik ? Czy obsługa przerwania zawiera się może w innej funkcji...
Kompilator prawidłowo założył, że te ciągi nie będą zmieniane, bo nie mogą. Skoro zmienna jest typu char*, a nie const char*, to kompilator nie może sobie "założyć", że łańcuch tekstowy wskazywany przez ten wskaźnik nie może być modyfikowany. To tak, jakby założyć, że elementy tablicy znaków wskazywanych przez char* czy char[] nie mogą być modyfikowane....
Zwracanie tablicy nie jet dobrym pomysłem, bo jeśli nawet z niego skorzystasz to i tak będziesz musiał zwrócić rozmiar tej tablicy przez zmienną. Generalnie zmienne tablicowe i stringi zwraca się przez referencję /wskaźnik a nie jako rezultat - jako rezultat w tym przypadku zwraca się ilość zamienionych znaków, true/false czy wykonanie funkcji się powiodło,...
Eeee... A po co, skoro i tak zapis do EEPROMu realizowany jest blokowo? A nawet jeśli by nie był, to wystarczy zrobić sobie funkcję, która ten zapis będzie realizowała właśnie w taki sposób? Tak czy siak nie rozwiązuje to problemu autora, ponieważ problem ten jest dosyć skomplikowany [; Ze swojej strony proponowałbym tablicę na takie napisy użytkownika...
skoro 0x30 to znak 0 to dlaczego do komputera przesyłane jest ]. Bo wysyłane są kody klawiszy a nie kody ASCII. Na raz możesz wysyłać 8 znaków (przynajmniej w CDC dla programowego rozwiązania USB na AVR). Musisz odnaleźć fragment, gdzie zmienne "key" jest wysyłana. Będzie tam wywołana funkcja, w której przekazujesz wskaźnik na zmienną (tablicę) i liczbę...
Skonwertować możesz przy użyciu sscanf podając jako wskaźnik na ciąg znaków miejsce, w którym powinna się zaczynać dana liczba. Ale najpierw musisz się upewnić, że odebrałeś pełne dane. Zapisuj je w tablicy, a nie w pojedynczej zmiennej char.
[syntax=cpp]element.imie_nazwisko=(konwe... Prawdopodobnie chciałeś stworzyć nowe stringi, ale tego tak się nie robi. Użyłeś właśnie operatora „przecinka” (nawet mimo tego, że są tam nawiasy). To co jest powyżej ma taki sens: do element.imie_nazwisko przypisz rozmiar wskaźnika (czyli...
hmmm, a mnie tu pokazuje, że nawet nie ściągnąłeś tego, co wrzuciłem, a tam jest napisane jak to zrobić. Napiszę jeszcze raz (osatni :D ): 1. robisz malloca - rozmiar pamięci o 1 większy niż cały plik, tablica przypisana do wskaźnika na char, czyli deklaracja: char *plik; 2. ładujesz do tego obszaru swój plik. /* Teraz w zależności od tego, jak są zorganizowane...
Do tablicy typu char nie można wstawić NULL, czyli wskaźnika pustego, bo zajmuje on zwykle od 16 do 32 bitów, a samo wstawianie adresu do ciągu znaków nie bardzo miałoby sens. W języku C kod NUL (przez jedno L) o wartości 0 oznacza koniec łańcucha.
AVRowiec --> mi się trochę pomyliło z typami a wskaźnikiem, ale to co ty tu opowiadasz to już na maxa pomieszanie ;) wsk_ramki+i gdzie i=49 nie wychodzi poza zakres skoro bufor ma 67 znaków. Z dodawaniem chyba nie powinno być problemów. Pierwszy element tablicy plus 49 daje nam miejsce które nadal mieści się w tej tablicy. A zwalanie tego na błedy kompilatora...
Co znaczy nie udaje? Badź precyzyjniejszy. Oba kody mają działać. Błąd masz gdzie indziej. Tablica znaków zawierająca stałą tekstową zostanie utworzona w obu przypadkach w tym samym miejscu. Zmienia się tylko alokacja wskaźnika. Albert
Ale znowu odkrywasz koło na nowo. W systemie masz czcionki proporcjonalne, gdzie jest właśnie tak jak piszesz - zawierają one tablicę w której jest zawarta szerokość znaku w pikselach + wskaźnik do bitmapy opisującej znak. Tu znowu polecę ci LCD Image Converter. Do ksiażki "AVR. Układy peryferyjne" wkrótce pojawią się przykłady. Tam znajdziesz szablony...
Musisz poczytać sobie i douczyć się, jak operować na wskaźnikach. Drugą rzeczą, jaką warto opanować, to korzystanie z debuggera. Korzystanie z dokumentacji też warto poćwiczyć. Zmienna speak wskaźnikiem na tablicę, a konkretniej na jej pierwszy element. Nie interesuje cię wskaźnik, tylko zawartość samej tablicy, mniemam, że jej pierwszy element. Do...
Witam W ramach zaliczenia mam do stworzenia projekt na bazie stm32f407 (płytka discovery) który będzie bazował na free rtos. Będą wątki sprawdzające stan przycisku[1], poziom napięcia[2] oraz wątek[3] tzw loga który będzie przez dma wyrzucał ciągi znaków przez porty szeregowy. Bez rtos sprawa wydaje mi się banalna lecz przy rtos mam wątpliwości merytoryczne....
bez wskaźników wiele tamtych elementów nie mialo by sensu , muszę przekazać wskaźnik aby miec możliwość edycji wskazanej zmiennej , no chyba ze to juz był wskaźnik , później sprawdzę . tak samo tablice znakow , tutaj wskaźnik wymagany. jest kilka funkcji do dokończenia, wyświetlacz wyświetla 16 znakow w 2 wierszach ale każdy wiersz ma pojemność 40 znaków...
Coś zrobiłem nie tak? strcat(uzyt,PathFind); strcat(uzyt,"/places.sqlite\0&q... Nie widzę definicji uzyt, ale z wcześniejszych postów wróżę jest to obiekt klasy string, którego brutalnie nadpisałeś ciągiem znaków z ścieżki. Ciekawy jestem czy nie dostałeś ostrzeżeń podczas kompilacji, ponieważ funkcja strcat spodziewa się jako...
->UDMA Wyobraź sobie ze standardowy char jest od -128 do 127 tak? Fakt ze STANDARDOWA tabela znaków ASCII jest do 127...ale co wtedy jesli wykorzystujesz rozszerzony ASCII (np. LATIN2)? Chcesz mi powiedzieć ze ktoś zadeklarował -71 znak? Dla bezpieczeństwa powinno się stosować unsigned char. Istnieją biblioteki string.h ktore są napisane dla chara bez...
No nie, nie mogę... Tak - wiesz że się mylę... Zachodzi istotna różnica między takimi definicjami: char amessage[] = "naszedł czas"; /* tablica */ char *pmessage = "nadszedł czas"; /* wskaźnik */ amessage jest tablicą wystarczająco dużą, aby pomieścić swój inicjator, czyli ciąg znaków zakończony znakiem '\0'. Poszczególne...
Jest to modyfikacja tego co jest na stronie http://www.instructables.com/id/Propelle... #define LEDs_PORT PORT_WYŚWIETLAJĄCY_8BITÓW_ZA_POMOCĄ_LEDÓ... (domyślnie: PORTA) led(0xXX) ; -wyświetl ledami 8 bitów z podanej liczby i zaczekaj chwileczkę - delay(); . display_list(czy_kierunek_wskazówek); - czy_kierunek_wskazówek przyjmuje true...
Witam Moja funkcja wyglada tak: void gps_dm_dms(void) { unsigned char i; unsigned char j; i=0; while(GPS.packet3[i++] != ','); // oczekiwanie na przecinek przed polem czasu UTC while(GPS.packet3[i++] != ','); // oczekiwanie na przecinek przed polem statusu // szerokość while(GPS.packet3[i++] !=...
Sh!t, ale wtopa... Więc spiesze z prawidłowym wyjaśnieniem: Sam lcd_text jest pojedyńczym wskaźnikiem na pamięć, tj. pierwszy bajt pierwszego elementu. Czyli jego najprostsza dereferencja *lcd_text wskazuje na literkę 'n' tekstu n apis1. Taka tablica w pamięci wygląda następująco (adresy kolejnych bajtów rosną w prawo): napis1 http://obrazki.elektroda.pl/8232821000_1...
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...
Trzeba posłużyć się wskaźnikiem, ponieważ w C nie przekazuje się całej tablicy (czyli np. ciągu znaków) do funkcji, lecz tylko jej adres. Tymczasem kolega jako argument funkcji podaje zmienną typu char. Proponuję wklepać tak: void pisztekst(char *tekst) //wysyłaj tekst { char zn; char nr=0; while(1) //pętla do pobierania pojedynczych...
(...)Table_temp jest wskaźnikiem typu char do tablicy typu char. Ten kod ma zadanie zmienić ciąg znaków z tej tablicy na liczbę, czyli tablicę o zawartości { 1,2,3,4,5,6,7,8,9 } na unsigned long counter_temp o wartości 123456789.(...) Tak, domyślam się. W przypadku Listingu 2 kompilator co prawda wie, że pierwszy argument jest typu char, ale drugi...
Witam. Kolejny problem z tablicą :) Przy inicjalizacji tablicy można zrobic tak: char tablica[10] = {1,0,1,0,1}; ale już w kodzie programu nie można tak podmienić wartości. Zazwyczaj zmianę elementów tablicy robi się w pętli (np. for), ale jeśli chcę umieścić w tablicy konkretny ciąg znaków i powiedzmy, że jest ich 20 czy 30 to taka...
Witam! listing nr 1: deklaracja: data_ur data_ur1 nie dość, że deklaracja występuje PO instrukcji zamiast przed nią, to jeszcze jest błąd w nazwie typu. (Czyżby to w ogóle się skompilowało bez uwag czy błędów?) Zamiast: [syntax=c]int main(void) { printf("struktury\n" data_ur data_ur1; ... ... ... }[/syntax] powinno być: [syntax=c]int main(void) { struct...
Witam. Odbieram w przerwaniu poprzez UART odpowiedzi z modemu. Używam komend AT. W przerwaniu dane z modemu umieszczane są w buforze (pamięć mikrokontrolera) czyli tablicy typu uint8_t. Stworzyłem funkcję którą wywołuję tylko raz w mainie i która posiada w sobie nieskończoną pętlę while. Funkcja ta jako argument otrzymuje wskaźnik na bufor. W pętli...
Witam! Nie sprecyzowałem, mój błąd. Chodziło mi o to, czy jest wywoływany w formie: moj_program [nrwiersza] [pliktxt] czyli: nazwa programu, spacja, nr wiersza, spacja, nazwa pliku tekstowego (ścieżka dostępu) przykład: moj_program 2 plik.txt Ja osobiście używam środowiska Pelles C i tam w opcjach wywołania można wywołać okienko gdzie można wpisać parametry...
Witam Wydaje się, że najprościej to wykorzystać poniższą strukturę przechowującą parametry danej tablicy ze znakami w pamięci Flash [syntax=c] struct sFont{ unsigned char height; // ilosc linii unsigned char width; // szerokosc char const *font; // tablica znaków }; [/syntax] W przypadku chęci wykorzystania kilku tablic z różnymi rozmiarami, to do funkcji...
Kłopot polega na tym, że deklaracja: struct t keytab[MAXW]; nie alokuje pamięci dla samych stringów, a tylko dla wskaźników. Stąd zapewne efekt, że wszystkie wskaźniki wskazują na ten sam ciąg znaków. Pomyśl dokładnie co robią poszczególne instrukcje. v-wyraz, keytab[i].w=v; v jest typu char*, prawda ? Jest więc wskaźnikiem -- w każdym...
1. Ale w takim razie po co zmieniać, skoro działa? Tablica jest przecież prawidłowo zadeklarowana i zainicjowana. 2. Na pewno jest to Twój program, sam go napisałeś? Do najprostszych nie należy, dużo operacji na wskaźnikach, a pytasz się o podstawy i dziwisz się dlaczego program nie działa po "sztywnym" ustaleniu wielkości tablicy (dla tego przypadku)....
Tablicę wskaźników tworzy sam kompilator/asembler, nie ma potrzeby samemu wyliczać kolejnych ofsetów. W złych miejscach szukasz też optymalizacji. Przede wszystkim informację o szerokości znaków w pikselach (nie bajtach) zamieściłbym tuż przed opisem znaku - jest to logiczne, gdyż dotyczy opisu konkretnego znaku. Ale na optymalizację miejsce umieszczenia...
Zamykam temat. Sprawa okazała się dość trywialna. Przesyłałem łańcuch znaków co było błędem. Ramka składała się z 10 osobnych zmiennych USINT zapisywanych w kodzie HEX. Zatem krok 1 : zapis do tablicy 10 elementowej krok 2 : wyliczenie sumy kontrolnej i uzupełnienie tablicy krok 3 : kopiowanie tablicy do bufora z wykorzystaniem wskaźnika za pomocą polecenia...
tak jak proponował Musisz sobie utworzyć coś w rodzaju wskaźnika do tablicy. Może to być np int, który będzie wskazywał na kolejne indeksy w tablicy. Wpisujesz zmienną do tablica ..operujesz wtedy na bufor[indeks] i pilnujesz czy indeks nie przekracza rozmiaru zadeklarowanego bufora, pamiętając o zerze na końcu łańcucha znaków. Bufor musi być o 1 większy...
tablicy wskaźnik wskaźnik tablicy wskaźnik tablicy obiektów
parkside akumulatory wymiana modułu pralki ariston automat świateł dziennych
telefon czysty whirlpool zmywarka
Spawarka inwertorowa - włącznik świeci, brak działania Mechanizm podawania kasety w kamerze Samsung VP-D20