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...
Zamiast int16_t użyj uint16_t (dla tablicy w eepromie, rzutowanie też jest zbędne)
Trochę się zmaieszałem. Pomocy :-) chodzi mi o rzutowanie wskaźnika np mam taka deklarację (uint32_t *) ?
Witam, u8 tab[100] u8 *ptr = tab; W zakładce Expressions możesz wpisać (u8*[100])ptr lub (u8 [100]*)ptr Jedno albo drugie zadziała... nie mam jak sprawdzić teraz które jest poprawne. EDIT: Oczywiście w Expressions możesz podglądać co chcesz. Można rzutować tablice na struktury i odwrotnie. Rzutować ręcznie wpisane adresy na tablice/struktury. Np: (radio_frame_t...
Pokaż większy fragment kodu, z deklaracją tablicy i rzutowaniem na unię.
Problem jest tutaj: [syntax=c]void RunNeuralNet_Classification () { ComputeFeedForwardSignals((double*)input... 100,0); ComputeFeedForwardSignals((double*)hidde... 23,1); } [/syntax] W wywołaniu funkcji masz konwersję tablicy dwuwymiarowej na jednowymiarową (rzutowanie...
przed wpisaniem do tablicy dokonaj rzutowania typu na int.
Dzięki za szybką reakcję chodziło o rzutowanie:)
to skoro padła odpowiedz jak poradzić sobie z problemem to powiem co poszło nie tak. w językach kompilowanych, na przykład C oprócz zwykłej tablicy istnieje także statyczna czysta tablica. [syntax=c]const char tablica[liczba][/syntax] gdzie liczba to naprzykład [syntax=c]#define liczba 100[/syntax] podczas przejścia preprocesora jak kompilator widzi...
Tak, kompilator obetnie typ int do 8-bitów. Jeśli chcesz zapisać całość to chyba najprościej jest zmienć typ tablicy na int, a potem ew. rzutować ją na byte (jak się domyślam int8_t). Ew. ręcznie zapisać a >> 8, a % 8. Tylko, że taki zapis wrażliwy jest na endianess.
A ten błąd ma jakąś nazwę? Tak patrząc na sam kod: przy zapisie do pliku zapisujesz "Konto " + nr_konta, a później obiekt bank, czyli zapisujesz dwa obiekty - string i tablicę obiektów Konto. Przy odczycie natomiast pierwsze co czytasz, próbujesz rzutować na tablicę obiektów klasy Konto, czyli najwyraźniej próbujesz rzutować string.
Nie chcę Cię martwić (bo jeżeli Twój kod działa jak powinien to OK), ale to co robisz w pierwszym poście 1 i 3 nie jest sobie tożsame. Kod w #1 jest jak najbardziej prawidłowy. Typ char to dla platformy .NET tak naprawdę 16-to bitowa liczba z zakresu 0...65535 Więc taki kod: znak o kodzie ASCII = 4 . Do tego w zasadzie typ char został stworzony. Jeżeli...
A powiedz coś bliżej o data - jak wygląda deklaracja tej tablicy?
Myślałem, że walczysz o jakieś kilobajty :) To co chcesz, możesz spróbować uzyskać poprzez użycie zamiast tablicy, wejścia typu Variant, a później MOVE_BLK_VARIANT na tablicę tymczasową, zadeklarowaną w obszarze Temp. Variant ma jeszcze kilka funkcji np.: do sprawdzania rozmiaru, typu elementów itd. PS: Word nie musisz rzutować na tablicę, do bitów...
Nie jest to skomplikowane tylko jest tego dużo. Najpierw wczytaj to wszystko do tablicy, następnie określ, które pola Cię interesują i nimi się zajmij. Jak trochę lepiej orientujesz się w programowaniu to możesz utworzyć odpowiednią strukturę z polami i wykonać tak zwane rzutowanie na tablicę z danymi. Tak stworzony układ danych odczytujesz z pól struktury,...
Dzięki za odpowiedzi:)Udało mi się to zupełnie inaczej rozwiązać:) Po prostu jedną pętlą rzutowałem do tablicy jedną kolumnę texboxów co jechała po wartościach parzystych a drugą po nie parzystych.Ale mam pytanie dlaczego for each by miało dawać exceptiony jak by się pojawiły inne kontrolki na panelu??
Bo rzutujesz całość a nie jedno z wyrażeń (dwa). Robi ci się int/int i to jest rzutowane na float dopiero (bezsens). Możesz sobie z castem zrobić ale tak jak kolega wyżej napisał.
Problem stanowi warunek while(*input) . Bez odczytów z ADC działa, bo prawdopodobnie tablice freq_window i amplit_window zostają rozmieszczone obok siebie, więc dopóki ta druga zaczyna się zerem nie ma problemu. W momencie zapisana do niej niezerowych odczytów z ADC wszystko się sypie. Przerób funkcję var_welford by pobierała liczbę elementów lub chociaż...
Język C nie wspiera dynamicznych tablic wielowymiarowych. Masz dwie możliwości: 1- wykorzystać "tablicę tablic" czyli tablicę wskaźników; 2- użyć tablicy jednowymiarowej i liczyć indeksy "na piechotę". Twój przykład jest zbliżony do metody pierwszej, tzn. tabpix jest u Ciebie wskaźnikiem na wskaźnik, a ponieważ w C wskaźnik na element jest równoważny...
Jak już masz otwarty reader to zamiast do tablicy lepiej załaduj wynik do tabeli DataTable, a potem na niej manipuluj, przekaż ją dalej albo podepnij jako źródło wyświetlenia... Tzn. zadeklaruj gdzieś DataTable dtTmp = new DataTable(); a zapisuje komendą Load() (może być od razu w using {}): using (SqlDataReader dr = comm.ExecuteReader())//wykon...
Nie można było tak od razu? Teraz przynajmniej mogę Ci powiedzieć dlaczego działa. Deklarując te 8 tablic i wkładając je do tablicy liczb całkowitych, dokonujesz niejawnego rzutowania z wskaźnika na tablicę (którym jest nazwa tablicy) na liczbę całkowitą. Potem jak wkładasz kolejne elementy tablicy tab do funkcji rejestr to dokonujesz znowu konwersji...
ad.1 Aby zrozumieć co się dzieje w tej linijce musisz dowiedzieć się co to są wskaźniki i rzutowanie typów. Jeżeli restart to tablica, to: [syntax=c]x=restart[0];[/syntax] przepisze pierwszy element z tablicy do zmiennej x. Nazwa tablicy to jednocześnie wskaźnik (adres w pamięci) do tej tablicy. I na przykład: [syntax=c]x=restart[1];[/syntax] zadziała...
To wiem, jak jednak wyjść wskaźnikiem na tablicę poza obszar 64kB? Rzutowaniem? robiw
Problematyczne nie jest zapisywanie do tablicy intów wartości 13-bitowych, tylko to, że w wyniku mnożenia tych wartości otrzymujesz wyniki 16-bitowy, a nie co najmniej 26 bitowy i tenże 16-bitowy wyniki sumujesz. W efekcie dostajesz śmieci. I nie, rzutowanie: suma+= (uint32_t) tab[indeks]*tab[indeks]; nie załatwia sprawy, bo 16-bitowy wynik mnożenia...
Niestety, ale jeśli chcesz tablicę wskaźników, przy czym wskaźniki wskazują na konkretne bloki pamięci, musisz je inicjalizować. Jeśli obie tablice są globalne, to bez problemu powinno dać się to zrealizować jakoś tak: [syntax=C]static char buff0[5][20]; char *menu_main[5] = { buff0[0], buff0[1], buff0[2], buff0[3], buff0[4] };[/syntax] lub równoważnie:...
ok jestem coraz bliżej, problem został mi tylko z hm nazwijmy to algorytmem. Mianowicie jak mam ująć w kodzie to rzutowanie indeksów choicegroupy na tablice.
Różnice wynikają z rodzaju kodowania liczb zmiennoprzecinkowych. Proponuję tablicę var zamienić na pojedyncze słowa (WORD) lub nawet bajty (BYTE) i napisać dodatkową funkcję, która te bajty złoży w DINT lub tablicę 4 bajtów, które będziesz mógł rzutować na REAL i dowolnie ustawiać kolejność bajtów (np.: przy użyciu składni AT). [url=https://support.industry.siemens.co...
Pierwszy zapis o który pytasz, to tablica wskaźników na funkcję, która to funkcja nie zwraca wartości i nie przyjmuje wartości. Zapis const oznacza, że tablicy nie będziemy modyfikować. Zapis, moim zdaniem bardziej czytelny, który sam stosuję w takim przypadku (z głowy): typedef void (*pVector_t)(void); __attribute__ ((used,...
No to tylko ta tablica variantów (array of variant) mi przychodzi do głowy, ale musiałbyś ją tworzyć przed każdym przekazaniem do funkcji sortującej. Od biedy tablica wskaźników, ale w funkcji musiałbyś odpowiednio rzutować (a więc i poinformować funkcję, na jaki tym ma rzutować oraz taką tablicę wskaźników utworzyć - sama z siebie by nie musiała być...
Jak widać nie jest. Tak się akurat składa, że program akurat jest dobrze napisany tylko API do tego WiFi jest lewe. Pewnie napisał go jakis przeciwnik const. A prosta rada: wyrzuć "const" Ta prosta porada nie zadziała. Błąd kompilacji pojawi się w innym miejscu. Rozwiązaniem jest: 1. Rzutowanie przy wywołaniu WiFi.begin 2. Zadeklarowanie ssid oraz...
Zauważyłem pewną specyfikę dla zwykłej tablicy makro nie działa jedynie dla pozycji nieparzystych w tablicy... Dla parzystych rzutowanie działa jak należy... To sugeruje błąd dostępu do źle "wyrównanych" danych w pamięci - zmienne o długości 2 bajtów powinny być umieszczone w pamięci pod parzystymi adresami. W tablicy elementów typu char, przy próbie...
Do funkcji w przykładzie przekazywany jest wskaźnik. W C/C++ nazwa tablicy jest jednocześnie wskaźnikiem na początek tablicy(tłumaczyłem Ci to bodajże przy okazji Twojej walki z jpg:). Czyli: Text_1234 == &Text_1234[0] Więc robisz dobrze w swoim kodzie(a przynajmniej w pierwszej jego wersji). Tak: &Text_1234 mógłbyś zrobić gdyby funkcja przyjmowała...
pierwsze powoduje zaokraglenie liczby do calkowitej ,a tego nie chce, nie rozumiem o co chodzi z rzutowaniem na tablice charow?? czy to spowoduje ze nie strace danych tak jak w pierwszym przypadku?
Rzutować operacje na unsigned long! counter_temp += ((unsigned long)(*(Table_temp + 1) - '0')) * multiTable32[1];
W Javie nie ma takich struktur więc musisz czytać z pomocą strumienia bajt po bajcie. EDIT: czemu w Javie te bajty masz jako string? Ja bym to widział tak: [syntax=java] // 'odebrane' to tablica bajtow - odebrany pakiet - czyli nasza struktura protected void onProgressUpdate(byte [] odebrane) { // tu czytanie, }[/syntax]
Yakhub: wsk->wsp_x //dokładnie taka notacja.. co do definicji wskaźnika samego do siebie można zrobić wskaźnik typu void a potem go rzutować..
W ogólnym przypadku musisz wysłać każde pole osobno, lub też napisać procedury serializacji i deserializacji struktury do/z tablicy znaków. W specyficznym przypadku może uda się wykorzystać specjalne dyrektywy kompilatora, aby struktura była upakowana w pożądany sposób (bez wyrównywania pól). Aby zgłębić zagadnienie, przeczytaj "Data structure alignment"...
Więc odpowiedź już masz wyżej. Mam taki problem, jak z tablicy liczbowej z uint8_t wyłuskać (przez złożenie) zmienne uint16_t? Rzutuj na int16_t i masz zmienne ujemne. To co pokazałeś niby działa tak samo, ale po co udawać, że chodzi Ci o mnożenie i dodawanie, skoro chodzi Ci o przesunięcie i bitowy OR? Zresztą to działa tylko "przypadkiem", bo tak...
A co jest złego w użyciu tablicy zamiast struktury i wołanie zawartosc ((uint8_t*)&zawartosc)... Rzutujesz strukturę na tablicę i używasz jej jak by pamięć struktury była tablicą. Znów zamiast wpisywać wartość wpisujesz w/w (albo robisz referencję i używasz referencji). Jednak to podejście jest śliskie - bo nie masz gwarancji...
Prawdopodobnie dlatego ze prog i tetno sa typu int a elementy wynik i tablica typu char.Musisz zrobic rzutowanie na int zeby sie nie czepial.Cos w ten desen: prog += (int)tablica[i]; itd. Dziwie sie natomiast czemu nie wyrzucil konkretniejszego warninga typu "you should cast ..."
Implementuje sobie obsługę MODBUS'a na tego uC i pojawił się mały problem. O ile moja biblioteka obsługi MODBUS'a działa bez problemu na wszelkich 8-mio "bitowcach" jak i na STM'ach o tyle na LPC1754 mam problem z "liniowością" pamięci. Dane z portu zapisywane są w tablicy (bajt po bajcie). Mając definicję ramki zapytania MODBUS rzutuję ją na tą tablicę....
No właśnie chodzi o to że te wartości mam w tablicy i mógłbym przerzutować na float całą tablicę, ale nie mogę bo mam ograniczoną pamięć. Czy rozwiązanie z mnożeniem i dzieleniem.. tzn zwiększanie wartości x10, ew. x100 i potem wykonać rzutowanie pojedynczych elementów w pętli for i przetworzyć i wrzucić od nowa do tablicy short int z wartością przemnożoną...
Jak wyżej - dodatkowo: 1.stwórz wkażnik typu menuitem 2.poprzez rzutowanie typów przypisz wskażnikowi adres tablicy (bezpośrednie przypisanie kompilator odrzuci ze względu na różne typy) 3.taka konstrukja + arytmetyka wskazników pozwala na łatwi dostęp do elementów tablicy; (wskaznik+indeks) pozwala na dostęp do konkretnego elementu tablicy; Pisze bardzo...
bufspc[i] powinien również być typu double w takim przypadku. Ewentualnie spróbuj rzutować: [syntax=c] bufspc[i] = uint_16t(bufspc[i] * tablica[j][1] / 100.0); [/syntax]
no fakt bo nie miales rzutowania u Ciebie byla tablica uint8_t a w funkcji wskaznik 16bitowy dlatego musiales rzutowac test w sposob jaki tego dokonales, nie zauwazylem tego. Składnia funkcji ejst jaka jest, tylko twoja tablica nie jest do niej przystosowana, jesli wysylasz dane 16to bitowe (16 pinow na dane) to zapewne tez nie otrzymasz na obrazku...
rodziel liczbe na cyferki :)... sie przyda sie dzielenie przez 10 i %... pozniej dodaj do kazdej cyferki kod zera z tablicy ascii i masz zapisane to w znakach ascii :)... a jak dalej potrzebujesz az "stringa", to PRAWDOPODOBNIE trzeba tak... rzutowanie na chary zrob i wrzuc te kody do tablicy, a na koncu dodaj kod konca tablicy (NULL pewnie) :)...
Zwiększ rozmiar tablic tab_1 i tab_2. I pokaż jak to wysyłasz.
A, to jak chodzi o losową fugurę, to najlepiej zacząć od tego, aby utworzyć je dynamicznie i zapisać do tablicy. Ale nawet jeśli nie, to możemy takową tablicę utworzyć na podstawie istniejących: [syntax=Delphi]var Shapes: array[0..9] of TShape; ... d:=0; for i:=0 to ComponentCount-1 do if Components[i] is TShape then Shapes[d]:=Components[i];[/syntax](piszę...
Mam jeszcze pytanie: dlaczego w wyrażeniu "const uint16_t (*) Przy rzutowaniu rozmiar tej tablicy nie jest istotny. Podanie tej wartości niczego nie zmieni. Kompilator musi mieć tylko informację, że do wskaźnika na dany typ wpisywane są adresy danych tychże właśnie typów. Puste nawiasy [] informują kompilator, że jest to wskaźnik na tablicę danych...
Jeśli te tablice po 1024 elementy masz jako lokalne zmienne automatyczne w funkcjach (nie "static") to nawet nie szukałbym problemu gdzie indziej... Nie wiem czy funkcje te masz odpalane z przerwań czy z wątku głównego, ale chyba oczywistym jest, że 384bajty, a nawet 4kB to mało jeśli tak wielkich tablic masz "kilka". 4\/3!!
Nie oblicza, bo wyrażenie tab_sin[n]=(int) (sin((double) (n/20*(2*M_PI))))... "wykłada się" przy rzutowaniu. A tak działa: tab_sin[n]=(int)(327... * sin((double)n*M_PI/10)... Pozdrawiam, Jacek
Problem rozwiązany. Źle dobrane znaki większości i mniejszości, a także niepotrzebne rzutowanie były spowodowane tym, że aplikacja źle działała.
Próbowałem obliczać to wcześniej i to samo. Tablica width jest unsigned char . Rzutowanie do float musi być bo wtedy dobrze mi zaokrągli do góry.
no właśnie tutaj sprawa jest trochę dziwna, bo rzutowanie zarówno na uint8_t jak i int8_t zwraca waring. Sprawa nie jest dziwna ale oczywista, sa to 3 rozne typy danych. Ogólnie co do obliczania długości tabilcy to możesz zastsować komendę sizeof(info0). Zwraca ona długość tablicy zainicjalizowanej. Sizeof to nie komenda ale operator i nie radze tak...
Wygląda w miarę ok, tzn. ma szansę działać. Co się wyświetla, a co się powinno wyświetlać? I gdzie się to wyświetla? sprintf tylko wpisuje do tablicy. Powinieneś zadeklarować tab tak, żeby nie trzeba było jej rzutować na char *. Zaleca się też używać snprintf(buf, sizeof(buf), ...) żeby nie wyjechać poza bufor.
Tak, krzyczy o niejawne pozbycie się volatile. Tozwiązanie z rzutowaniem pobranego adresu jest ok. Jeśli masz wątpliwości sprawdź w symulatorze.
Chodziło mi tylko o to czy szybciej komputer przesunie bity i pomnoży ileś tam razy czy wykona kopiowanie pamięci? To już raczej komputera się pytaj. :D Pewnie rzutowanie jest lepsze szczególnie przy użyciu _cast bo kompilator próbowałby cokolwiek nadzorować a tu sam muszę pilnować by sizeof b było mniejsze od 64. Taa, ciekawe, który _cast? Tutaj akurat...
Spróbuj użyć rzutowania jeszcze. Sorry, ale ja nie znam C :(
Witam, Nie wiem jak to zapisać Niestety w prostym działaniu nie da się tego w jednej linii zrobić (bez rzutowania i innych cudów), należy to zrobić po jednym elemencie [syntax=c] int tablica[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}}; tablica[0][0] = 0; // zerowy wiersz, zerowa kolumna tablica[0][1] = 2; // zerowy wiersz, pierwsza kolumna [/syntax]
Może coś takiego będzie działać, sprawdziłem tylko, że się kompiluje: // definicja tablicy wskaźników do funkcji void (*f_Function_table[])... PROGMEM = { f_1, ... f_5 } //----------- // wywołanie void (*f)(); // pośredni wskaźnik na funkcję f = (void*)(pgm_read_word(&&...
Miałeś rację, trzeba było użyć typu Word...dziękuję bardzo bardzo:-) Dodano po 1 Pojawia się kolejny problem. Jak mam zrzutować tą tablicę aby wyświetlały mi się litery... rzutowanie na char doprowadzi mnie do punktu wyjścia.
zrób tak: arm_rfft_fast_f32(&S, input, (float*)output,0); Ja sobie tworze taką tablicę dwu wymiarową by się potem z danymi nie męczyć, ale faktycznie trzeba rzutować na pointer float
Napisze tutaj, bo nie wiem co częściej sprawdzasz. Tak patrze i przychodzi mi jedna myśl. Może po drodze coś się rzutuje i sama zmienna pamiec z racji, że jest char ogranicza możliwość większych wartości? To by tłumaczyło dlaczego tekst przechodzi, a inne wartości jak np. 0xFF nie dają rezultatu. Jeśli to jest problem to rozwiąże go zadeklarowanie tablicy...
Pytam edukacyjnie. A ta struktura ma tylko 3 pola tutaj. W rzeczywistości będzie ona zawierać całą listę dat i czasów, więc będzie duża. Edukacyjnie więc - do wypełniania w pętli służy tablica, a nie rzutowane struktury czy jakieś unie (wspomniane tutaj pomysły z uniami i type-punning są w standardzie języka opisane jako "undefined behaviour", zabronione...
Przypuszczalnie jakieś problemy z rzutowaniem, nawiasami lub czymś takim. 4\/3!!
Proponuję zapomnieć, że się zna jakieś standardowe biblioteki - ich znajomość będzie tylko przeszkadzać w szukaniu rozwiązań. Popularne a ogromnie fałszywe myślenie. Zamierzasz zaprojektować NAPRAWDĘ TRUDNY języku nie odnosząc sie do dorobku branży. System nie-drzewa i jezyk do tego ma podstawowy dylemat: albo jest zamiar "podczas analizy pliku" wykryć...
// 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:...
Nie działa :( Tablica jest niby tworzona, wszystko jest OK, ale gdy wykorzystuję dane z tablicy to program się sypie, a gdy wyświetlam te dane w Edit z rzutowaniem na string to dostaje dziwne ciągi trzyznakowe ze znakami dolarów
(int)dac[i] -> ... co tu chciałeś uzyskać? nie jest dobrym pomysłem że 'wszystkie zmienne' są unsigned int. Np zmienna i powinna być unsigned char. Na ośmiobitowcu zmienne > bajt są kosztowne. Po drugie napisz powoli i krok po po kroku o co chodzi z tą tablicą i z sinusem. Bo ciężko cokolwiek zrozumieć, są tam rzutowania na long, które też kosztują.
Próbowałeś wyświetlić adres przekazując wskaźnik na char do cout, ale cout interpretuje zawsze wskaźnik do char jako tekst i wyświetla tekst. Właśnie dlatego trzeba zrobić rzutowanie do (void*), żeby "przekonać" kompilator, że chcemy widzieć wartość wskaźnika. To powinno wyjasnić wszystko: [syntax=c]for(int i = 0; i < 7; i++) { cout << "wsk....
Po raz "enty" piszę, żebyś wrzucał konkretny kod który pozwoli się odnieść do problemu, najlepiej z konkretnym komunikatem kompilatora w którym opisuje on co mu się nie podoba. Skąd ja mam wiedzieć, jaki jest typ zmiennej `tablica`? Czy jest to tablica dwu- czy trój-wymiarowa? A może to znów nie jest `char` tylko coś innego. P.S. Tym rzutowaniem na...
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.
Zgodnie z podpunktem 9 p. 6.5.6 oba odejmowane wskaźniki muszą wskazywać na elementy tej samej tablicy lub na element tuż za tablicą. Jeszcze podpunkt 7 mówi, że na potrzeby punktu 6.5.6 wskaźnik do obiektu, który nie jest tablicą, liczy się jak wskaźnik do tablicy elementów danego typu o długości 1. Czy (char*) NULL wskazuje na obiekt? Zgodnie z punktem...
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)...
Witajcie. proszę o wytłumaczenie, jak poradzić sobie z takim problemem. Mam dwie tablice. Jedna umieszczona jest w RAM Dodano po 1 W sumie udało mi się temat rozwiązać przy pomocy stron: https://www.ibm.com/docs/pl/i/7.5?topic=... https://cpp0x.pl/forum/temat/?id=16370 Pomogła funkcja "strcpy" Jest może inna metoda ?
zrób sobie zmienną typu string i wczytuj do niej znaki. Wtedy masz tekst i z tablicy ASCII - na wikipedii masz fajnie rozpisaną ;) korzystasz i sprawdzasz czy podany znak jest cyfrą 0-9 czyli czy należą do przedziału 48-57 ;) i wczytujesz te liczby aż do napotkania znaku innego ;) Pamiętaj że możesz mieć wg tego co napisałeś różne liczby czyli zarówno...
string tekst; ... for(i=0;i<Length(tekst);i... dekoduj(tekst[i]); (nie pamiętam, jak tam C++ indeksował i czy przypadkiem nie trzeba było użyć metody rzutującej na tablicę znaków...
...Ponadto tablica w kodzie mickpr jest zadeklarowana globalnie, czego podobno należy unikać. Czy dzięki wskazaniu pierwszego elementu tablicy zyskamy dostęp do całej? Czy wewnątrz funkcji da się wtedy zainicjalizować tablicę w ten sposób : tab = {{.....}, {.....}, {.....}} ? Ja założyłem, że zawsze znamy rozmiar tablicy. Autor nie powiedział,...
Tak swoją drogą to te kombinacje są nieco błędne - jeśli ilość danych do zapisania nie jest podzielna przez 4, to wcale nie można sobie przeczytać "poza" koniec tablicy - undefined behavior. Nie mówiąc już o tym, że zasadniczo rzutowanie danych typu uint8_t na uint32_t bez zapewnienia w jakiś sposób wyrównania tych pierwszych jest również błędne (na...
Oczywiście bez const też nie działa ;) problem w tym że mam tablicę BYTE i muszę ją wysłać przez USB, czyli muszę ładować dane do 32-bitowego rejestru. I robię to przez rzutowanie. Tylko że to ARM 32-bitowy i żeby odczytać 4bajty na raz to adres tej zmiennej musi być wielokrotnością czwórki (taką ma budowę wew.). I tu mam problem bo gcc nie wstawia...
Zobacz, jak jest zdefiniowana zawartość ROM. Rzutowanie jest niezbędne, żeby z liczby zrobić jakikolwiek wskaźnik, a to jest wskaźnik na wskaźnik na tablicę. Samo przypisanie tego wskaźnika do zmiennej jest natomiast bez sensu, bo wystarczyłoby to zgrabnie zrobić przez #define.
Faktycznie dziwne. :D Program wyświetla 0 1 V A I ♥ ♥ Skoro u Ciebie jest inaczej, to chyba masz jakąś edycję specjalną kompilatora. :P Dodano po 7 W programie tworzysz niepotrzebnie tablicę, której nie zwalniasz.[syntax=cpp]char* dd = new char[sizeof(test)];[/syntax] Dlaczego niepotrzebnie? Bo to[syntax=cpp]dd = reinterpret_cast<char*>(m);[/synta...
to już dawno zrobiłem, tylko rzutowanie prowadzi do takiego ostrzeżenia: warning: cast to pointer from integer of different size a tego już obejść nie potrafię.
Na szczęście zbliżamy się już do końca, udało się wytworzyć stabilne przebiegi właśnie z użyciem Float. [syntax=c] volatile float X, dX; volatile float Y, Y0, Y1; int16_t TAB[VCO_MAXPOINT]; volatile uint32_t X0, X1; int main(void) { dX=153.72; while(1) void SysTick_Handler(void) //podprogram przerwan { X0=X; //pierwszy element X1=X + dX; //następny...
Witam, Napisałem funkcję, która powinna zwracać tablicę jednowymiarową, zapisywaną następnie jako wiersz/kolumna tablicy dwuwymiarowej. Wszystko niby działa. Przy pierwszym wywołaniu funkcji, zwraca ona poprawne wartości typu: 37987 4868,64 4545,50 3780,99 2309,05 itd. Przy drugim wywołaniu zwraca już wartości przeze mnie niezrozumiałe: 1088611935 1088588255...
Ale dalej nie rozumiem jak właśnie zapisać to do pliku. Mimo, że robimy rzutowanie nie wiem jak to przerobić na znak i wpisać do pliku tak żeby Zapisać to do tablicy 2-wymiarowej. Pierwszy to znak drugi to liczba wystąpień w ASCII. Powiem szczerze czytam i przeglądam tą Symfonie C++ cały czas i nic z tego nie rozumiem. Jest funkcja do otwierania pliku,...
Gdy tak robie mam problem z funkcja srand o c tym chodzi? To tylko ostrzeżenie o niejawnym rzutowaniu.
nazwa typu "kłamie", jak chcesz znak to mów znak (zastanów się czy signed, czy unsigned, żeby po zmianie opcji kompilatora nie wyleciało w powietrze.) A jak liczbę (Intxxxx), to dlaczego inicjujesz literkami? [syntax=c]Int8* WskaźnikNaDupe = Text_ABCDE[3];[/syntax] Nie myślałeś o czymś takim? Po to zabawa typami, aby rzutowanie było zbędne. Rzutowanie...
A to nie jest tak że z tablicy 255,0,0 to (R,G,B) czyli jeden pixel? Dokładnie. Na początku mam tablicę Pokaż definicję tej tablicy. Bajt to bajt - nieważne jak zapisany, a wskaźnik zawsze możesz rzutować. W C nie ma podstawowego typu 24 bitowego, są 8, 16, 32 ewentualnie 64, ale 24-bitowego nie ma, więc powtórzę: pokaż jak jest zadeklarowana/zdefiniowana...
Wyraziłeś się precyzyjnie tylko że to rozbijanie wyszło wcześniej. Napisałeś o promocji do integer a ja dodałem priorytet .Dla więcej bitowych liczb wystarczy jasno sprecyzować rzutowanie ?. Na zrzucie ekranu widać jak liczby 0xFE i 0xFD wpadają do tablicy już jako znaki ascii f-0x66 e-0x64 f-0x66 d-0x65 dzięki snprintf , więc chyba wszystko działa....
O właśnie, a u mnie taka sytuacja w pewnych miejscach występuje. Niektóre elementy tej tablicy służą do określenia czy została ona zaprogramowania czy nie. Wartość zaprogramowanej ma być równa 1. Niezaprogramowania będzie miała 0xFF. Albo teraz 0x00 po użyciu domyślnego inicjalizatora. Co do buforowania w rejestrach to oczywiście wiem że zabraknie...
LPSTR to char* LPWSTR to wchar_t* Chcesz podać char* zamiast wchar_t* do funkcji. Można wykonać rzutowanie i wtedy skompiluje się bez błędu, ale to mniej więcej tak, jakby podać tablicę int zamiast tablicy char. W pewnych wypadkach się przydaje, ale zwykle nic dobrego z tego nie wyjdzie, bo int ma większy rozmiar niż char - tak jak wchar_t jest większy...
Tak, 10 if'ow. Ale z tablica nie powinno być problemów. Nie wiem co zwraca makro _SFR_IO8. Spróbuj rzutować wszystkie adresy na (unsigned char *). unsigned char *CZUJNIKI_P[3]={(unsigned char *)&_SFR_IO8(0x1B),(unsigned char *)&PORTB,(unsigned char *)&THERM_3_SW_P}; I jeśli wpisujesz sam adres 0x1B to pewnie wystarczy tak jak u mnie (unsigned char *)...
Witam Mam jedno pytanie. Używam "Settings File" do zapisywania ustawień aplikacji. Czy da się w tym zapisać tablicę string object , ale nic się nie zapisuje. Fragment kodu: Settings1.Default.Folders = (object)Folders; Settings1.Default.Save(); gdzie: - Settings1 .Default.Folders to object - Folders - string [,]
moze unia? typedef union { uint8_t tablica[rozmiar calkowity]; struct { // twoja struktura }; } jakas_unia_t; tym sposobem nie trzeba rzutowac, wystarczy wysylac i odbierac tablice, a uzywac struktury normalnie... niemniej jednak jesli z jednej strony masz little-endian, a z drugiej big-endian, to nic specjalnego nie poradzisz... a tak wlasnie to wyglada......
Atom, ok, jesli to PlasmaColors to adres tablicy to wporzadku, z tym, ze po co stosowac tyle rzutowan, skoro mozna potraktowac calosc jako tablice? uint8_t Plasma_colors[256]; *Wsk=Plasma_colors[127+sinf(Plasma_shift... Takie wielokrotne rzutowania to nic dobrego, co jesli wykorzystasz to w systemie w ktorym adres nie jest 32-bitowy?
W Twoim przypadku zapisujesz pierwszy (starszy) przychodzący bajt w dane_RX[1] a drugi (młodszy) - w dane_RX[0], bo, jak sam napisałeś, masz dane nadchodzące w big endian a AVR pracuje w little endian, więc musisz odwrócić kolejnośc bajtów w pamięci. I teraz możesz sobie przykładać wskaźnik do typu uint16_t tam, gdzie chcesz, czyli do tablicy dane_RX:...
Spróbuj: glcd_str_P((char *)pgm_read_word(&menus No TAK, to takie oczywiste! Odczytujemy adres, a więc 2 bajty (word) i rzutujemy na wskaźnik na char. bo przecie funkcja tego oczekuje. Wiedziałem, że pomroczność mnie zaćmiła. Dziękuję! robiw
Nie wykraczam nigdzie poza zakres liczby 16bitowej, zmienna temp będzie to temperatura tylko że bez przecinka... np jeśli jest 15.3 stopnia to temp będzie równe 153... wiec temp będzie przy 100 stopniach równe 1000 więc na pewno nie w tym błąd... Co do warunku else to tablica cyf jest zmienna typu uint8_t więc tam będzie niejawne rzutowanie na ten typ......
4 piętra to chyba jeszcze nie wieżowiec?? :D Jest wiele możliwości na stworzenie tego programu, ciężko jedną wybrać... Możesz tworzyć kontrolki "dynamicznie", jak pisałaś (do tego bym wykorzystał TableLayoutPanel). Dlaczego uważasz, że to "za duuuużo kodu i obliczeń" ?? Deklarujesz dwuwymiarową tablicę z losowymi liczbami, dwie zagnieżdżone pętle for......
rzutowanie wskaźnik delphi rzutowanie rzutowanie zmiennych
wpisany tekst komórek kontrolka volvo pomarańczowy szuflady ricoh
Renault Megane Scenic 3 - Radio i nawigacja nie działają po wymianie akumulatora Jak wyłączyć tryb demo w pralce Candy Rapido Pro?