Owszem, można do wskaźników w C przypisywać arbitralne wartości: const unsigned char tablica = { 0x86, 0x88, 0x90 }; int i = 2; *((char *) tablica[i]) = 10; /* przypisanie wartości 10 pod adres z i-tego elementu tablicy */ char *ptr = (char *) tablica[1];
Jak kopiujesz dane binarne to memcpy() a nie strcpy(), choć tutaj równie dobrze można zrobić to na pętlach for(). Do zrobienia jak to określiłeś szufladek, deklaracja tablicy powinna wyglądać raczej tak: [syntax=c]char pamiecRx[105][8][/syntax] Możesz też zadeklarować tablicę o rozmiarze 8*105 i przesuwać się po niej.
Nie używam Keila ale coś takiego powinno wystarczyć [syntax=c]const unsigned char tablica[] = {dane}; const unsigned char *pointer pointer = tablica;[/syntax]
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...
Cudów nie ma, pokaż kod.
Tak przy okazji opinia Linusa: aa tiaa, ale to nie problem, zawsze po wyjściu z niej wystarczy dać : desc Dodano po 8 AD.1. zawsze, końcowe zero jest nieodłącznym elementem c stringów, więc słowo 'Ala' będzie miało cztery znaki. "Jeśli mam wyświetlacz 2x16 i chcę zapisać pełne 16 znaków w wierszu, to robię tablicę 16 bajtów, czy 17" - char bufor_1...
Napisałem Ci, co źle robisz: int * dla stringów-NIE const char * Niestety nie mogę sobie poradzić z utworzeniem kolejnej tablicy dlaczego? Co stoi na przeszkodzie?
Czy aby przypadkiem w typie char nie zostaje zakazana wartość 0x00? Chciałbym stworzyć ciąg z dowolną zawartością, w tym też 0x00. Czy może ten ostatni bajt jest brany pod uwagę jedynie przez funkcje operujące na ciągach znakowych? To Ty decydujesz co znajduje się w komórce tablicy, ale jeśli to jest 0x00, to niektóre standardowe funkcje wykorzystają...
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...
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...
Przyjrzałem się funkcji "strtok2()" i wniosek mam taki, że nie nadaje się ona do Twojego programu. W funkcji "odczyt_IMEI" potrzebujesz odebrać IMEI, które jest zawarte przed napisem "OK". Możesz to zrealizować w taki sposób (przenieś do siebie tylko funkcję "odczyt_IMEI"): [syntax=c]#include <iostream> #include <string.h> using namespace...
Ja tu nie widzę błędów i kompiluje pierwszym lepszym online compilatorem. Sprawdź w ustawieniach IDE czy masz dobra ścieżkę do kompilatora
W indeksie tablicy pomyliłeś kolumny z wierszami. Zdefiniowałeś tablicę zawierającą 20 wierszy, po 5 znaków każdy, co oczywiście nie wystarcza do przechowywania tekstu zgodnie z określonym formatem.
Druga rzecz strcmp() porownuje dlugosci i zwraca zero jesli dlugosci sa takie same. Akurat to warto porownac for'em Ja się nie chcę czepiać, ale kolego, jeżeli słabo znasz C, to sprawdzaj wszystko dwa razy, zanim komuś podpowiesz. strcmp() służy właśnie do porównywania napisów, a nie długości, więc tu akurat jest dobrze. Jeżeli chodzi o techniki strukturalne...
Zmieniając typ na int w oryginalnym kodzie przenosisz 40 bajtów (20*2) na każdy po 4 cykle (2 wczytanie, 2 zapis) = 160 cykli. To jest minimalny czas, poniżej którego nie da się zejść. Jeśli memcpy działa szybciej, znaczy nie kopiuje wszystkich 40 bajtów (tylko 20 bajtów - jeśli nie zmieniasz trzeciego argumentu w wywołaniu funkcji), sam kod to wtedy...
Ja nie za bardzo rozumiem, co ty chcesz zrobić? Z czym związane jest N? Dlaczego mnożysz N przez 2? Do czego to ma służyć. w dodatku jak n jest większe od 1 to program wiesza się, To akurat normalne, bo indeks tablicy "idzie w krzaki". Napisz dokładnie co chcesz zrobić. Przykładowe dane wejściowe Co ma być zrobione i co ma powstać. Inaczej nie dojdziemy...
output[x] = '\0'; Gdzie x to koniec tego co sam wpisałeś. Wypisywanie tekstu trwa do pierwszego napotkanego znaku o wartości 0. PS Ewentualnie przed wpisaniem czegokolwiek do zmiennej możesz zrobić: #include <cstring> memset(output, 0, 255);
Tablice definiujesz tak: [syntax=c]char tablica[7][3]={"pn","wt","sr","cz","pt",... A używasz tak: [syntax=c]lcd_str(tablica[dnityg]); [/syntax]
Można to zrobić np. tak: #define MAXINDEX 15 // ostatni index w tablicy unsigned int m =0; for (int a=0;a<4;a++) { m <<= 8; m |= pBuf[MAXINDEX - a]; } Uwaga: w tym przykładzie domyślnie typ int jest 32 bitowy. Ogólnie nie jest to regułą!!
Myślę że tak zmienna=*((uint16_t*)&buf ... Proszę nie udzielać błędnych porad! Taki kod jest nieprzenośny, a na dodatek zadziała tylko dla tablicy liczb, a nie dla tablicy znaków. Można zrobić tak: int godzina = 10*(buf[0]-'0') + (buf[1]-'0'); Najprościej jednak będzie użyć biblioteki standardowej:...
Jeżeli zmienna2[0] == 0x31; //znak '1' zmienna2[1] == 0x32; //znak '2' //czyli liczba w ascii 12 to robisz zmienna1 = (zmienna2[0]-0x30)*10 + zmienna[1]-0x30; lub jeżeli zmienna2[0] ==1; zmienna1[1] ==2; //czyli liczba 12 to robisz zmienna1 = zmienna2[0]*10 + zmienna[1];
a probowales tak T1 = atoi( (const char*)test ); ?
http://www.cplusplus.com/reference/cstri...
a. bufor.length() NIE jest poprawny, jeśli 'bufor' jest zmienną typu char . Zmieniłeś typ zmiennej na string , dlatego Ci zadziałało. b. Jeśli zapis char *wskaznik = & bufor się kompiluje, to znaczy, że kompilator stosuje niejawny domysł zamieniający ten zapis na: char *wskaznik = &bufor . Przed napisaniem poprzedniego posta sprawdziłem kompilację...
Witam! Po pierwsze co mi się narzuca to nie uwzględniasz znaku liczby. Widzę też, że cząstkowe wyniki składasz w tablicy typu int. Nie ma takiej potrzeby zwłaszcza, że nie znamy jej rozmiaru w momencie wywoływania funkcji. Proponuje takie rozwiązanie funkcji suma: [syntax=c]int suma(char *t) { int inword = 0;/* Ta zmienna sygnalizuje że jesteśmy w liczbie...
Zależy jak ją wyślesz Możesz wysłać jako ASCI(czyli 2 bajty) to potem na UC musisz ją wstawić do tablicy np 2 elementowej np. char tablica[2]; tablica[0]= uart_getc(); tablica[1]= uart_getc(); I potem funkcja ATOI (asci to int) int wynik = atoi(tablica); Albo po prostu w twoim terminalu wysłać te 10 jako int (1 bajt) i normlanie odebrać uint8_t wynik=uart_getc();
Jesli te tablice maja taka sama strukture to prosciej do funkcji przekazac wskaznik do wlasciwej tablicy: uint8_t LCD_Char(int8_t mychr, uint8_t xPos, uint8_t yPos, char *tablica) i potem wywolywac: uint8_t LCD_Char(..., &tablica1[0]) lub uint8_t LCD_Char(..., &tablica2[0])
Co znaczy, że program przestaje działać? Puszcza dym, czy co? Nie uzyskujesz żadnej odpowiedzi na terminalu? Trudno powiedzieć jak jest zbudowane getc, może w nim jest problem. uart_puts na pewno wysyła łańcuchy, a nie pojedyncze znaki? Wysyłając przez terminal znaki być może końcone są one znakiem \n lub CR LF, których nie odbierasz. Być może to bruździ...
... Bzdury! Inicjalizacja tablicy w postaci char tablica[] = {'a', 'b', 0}; jest 100% poprawnym "napisem" w standardzie języka C - wartość zero (0, '\0') to zupełnie co innego niż znak zero ('0'); 4\/3!!
if( jeżeli ma coś po przecinku while( dopóki ostatni znak to '0' remove usuń ostatni znak
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=.
1) Zapomnij, że istnieje coś takiego jak String... przynajmniej na Arduino. Używaj char (niestety z wszystkimi tego konsekwencjami). 2) Do trzymania komunikatów używaj pamięci FLASH, szkoda marnować RAM na każdy String w programie... czyli nie " Serial.print("Inicjowanie karty SD..."); " lecz " Serial.print(F("Inicjowanie karty SD...")); ".
Potrzebne mi to od zabawy AVR+ENC28j60. Chciałbym umieszczać niestringopodobne treści strony www bezpośrednio w kodzie c. Mając jej jako tablice w progmem łatwo mi korzystać z posiadanych funkcji. No właśnie o tym piszę. To jak traktujesz dane to kwestia zapisu w programie. Konwertowanie danych binarnych na kod c, po to, żeby potem je przekonwertować...
To nie są znaki tylko raczej bajty - tablica nie tworzy napisu (znak o kodzie 0 zakończyłby napis i wyszłoby 254). Gotowej funkcji do konwersji dziesiętnej raczej nie będzie. Można albo skonwertować to na napis dodając do każdego elementu tablicy wartość '0' i potem skorzystać z funkcji char * => int (scanf, atoi lub wręcz strumienie c++), albo...
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]...
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...
czyli poprostu try { name = Edit1->Text; } Gdzie name jest zadeklarowane w klasie jako AnsiString. Dokładnie właśnie tak - i tylko tak. Napisałem - zostaw te char*! Piszesz w C, czy C++?
tylko i wyłącznie dzielenie i odejmowanie. Czyli [0]=liczba/100 (stałoprzecinkowe - pascal - div) [1]=liczba/10-[0]*100 itd. oczywiście do wykonania w pętli.
unsigned char (*tablica) Źle używasz wskaźnika, ot co jest nie tak. Zauważ, że wskaźnik jak nazwa zobowiązuje wskazuje adres pierwszego elementu tablicy cyfry. Inkrementując wskaźnik przesuwasz się po kolejnych adresach, kolejnych elementach tej tablicy. (at)excray, ekspertem nie jestem, ale sama nazwa tablicy jest wskaźnikiem iirc więc jednakowy jest...
[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...
Sprawdzałem u mnie na symulatorze i wszystko ok. Dodałeś stdlib? Jakieś warningi?
a jak zadeklarować tablicę o różnych typach zmiennych? (numery wierszy- int, wiersze - tablice char) Tablica struktur się kłania. Jak nie wiesz o co chodzi - to tu masz przykład: http://marek.piasecki.staff.iiar.pwr.wro...
Witam, char tekst1[10] = "cos"; char tekst2[4] = "kkk"; //pamiętaj, że ten łańcuch musi być o 1 dłuższy strcat(tekst1, tekst2); Tekst_T6963C(0, tekst1); Wszystko powinno działać.
Takie coś się kompiluje, ale pisałem z głowy, więc trochę chyba te typy trzeba poprawić: bool exists in the current C - C99, but not in C89/90. Teraz można to uruchomić i testować i poprawiać
Oj chyba kolega część książki mówiącą o tablicach przekartkował. ;) [syntax=c]char we_love[] = "cookies!"; // kompilator sam obliczy rozmiar tablicy i skopiuje "cookies!" do niej. char highway_to[4] = "Hel"; // tutaj również tablica będzie kopią "Hel" const char* swiety = "Mikołaj"; // swiety to wskaźnik na const char, zawiera adres literału "Mikołaj",...
Te siedem adresów, to adresy kolejnych komórek tablicy - wskaźniki zajmują po 8 bajtów, więc każdy jest o 8 większy. Adresy ciągów tekstowych możesz wyświetlić tak: [syntax=c] for(int i = 0; i < 7; i++) { cout << (void *)(titles[i]) << endl; } [/syntax]
że program kończy swoje działanie bo napisie "raz" Krótki test i wyszło dlaczego tak jest. Otóż nie da się czytać spacji przez scanf("%s"). Szybkie pytanie do googla i odpowiedź (stackoverflow.com/questions/6282198/rea... się znalazła. Oto poprawiony program: [syntax=c]#include <stdio.h> int main(void){...
a nie powinno być czasem: pgm_read_byte(&tablica[x] ... :?:
Oj! Rzeczywiście, przecież tablica cmds też była PROGMEM , a nie była właściwie odczytywana (a palnąłem, że „powinno działać” :oops: ). pytanie więc brzmi czy cmd? znajdują się w RAMie czy też w pamięci programu. Tylko w pamięci programu. Ciekawe dlaczego to składowanie tablicy w pamięci programu nie działa właściwie. Może chodzi o to, że...
Witaj, _Edycja(at)4 I dokładnie taki sam symbol jest wyeksportowany z dll. Taki ciąg znaków powinieneś podać do funkcji GetProcAddress. Zmian nazw, bzw. usunięcia dekoracji, dokonuje się zazwyczaj za pomocą tekstowego pliku .def, dołączanym do etapu linkowania.
jeśli a zadeklarowane jest jako tablica: char a[128]; to adresem danych w tej tablicy jest: - a - &a[0] &a to ... w sumie nie wiadomo co [; 4\/3!!
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ć???...
Nawet nie miałby powodu zrobić inaczej z wielu powodów. Tablica wielowymiarowa jest tak naprawdę tablicą tablic, a więc wszelkie właściwości z tym związane są nadal prawdziwe. PS. Była wzmianka o stringu. Trzymanie ich w ten sposób mija się często z optymalnym wykorzystaniem pamięci.
Deklaracje - rzecz jasna - pominięte. [syntax=c] i = 3; while(liczba) { tab[i--] = '0' + liczba % 10; liczba /= 10; } [/syntax]
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...
atom1477, tak wlasnie problemem jest tutaj tablica ! :) tmf, dziekuje tez to wyliczylem i chodzilo mi wlasnie o to gdzie trafia tablica bo wiedzialem ze problemem jest jej wielkosc ! :) Wiec problem rozwiazany dzieki ! :)
Tablica char str[3]; jest za mala (ma tylko 3 elementy) a Ty odwolujesz sie do 4.
Przedewszystkim zrób to inaczej... po prostu... main() { char bufor[20]; ... funkcja(bufor, ...); } funkcja(char* bufor, ...) { } I w ogóle nie ma problemu. Zmienna tmp w ogóle jest nieporozumieniem. Przecież wewnątrz funkcji możesz sobie zadeklarowac tablicę o dowolnym wymiarze... funkcja(...) { char tablica[1000]; } A pamięć możesz zwalniać gdzie...
To 'd' spowodowane jest włączeniem Unicode na konsoli tekstowej. U mnie kodowanie jest ISO8859-2 i zamieszczam zrzut: [syntax=txt]SKAS$ cat s2.c #include <stdio.h> #include <string.h> int main(void) { char tablica[30]; int idx_end; scanf("%s",tablica); idx_end = strlen(tablica); for(; idx_end>=0; idx_end--) { if(tablica[idx_end]=='\0')...
Zgaduję, że chodzi Ci o czytanie liczb z postaci znakowej. Jeśli dziesiętnie, to: liczba[i] = (cyfra[i << 1] - '0') * 10 + cyfra[(i << 1) + 1] - '0';
Nie rób zmiennych ze stałych - first i last są zbędne. Nie deklaruj tablic wewnątrz funkcji - spowalnia to wykonanie i grozi przepełnieniem stosu. Nie potrzebujest wskaźników na bufory 15- elementowe - przedeklaruj je jako wskaźniki na char.
Siemano. Jeżeli chcesz umieścić np. tablicę jednowymiarową w sekcji EEPROM to możesz wykonać to w taki sposób const unsigned char Tablica[] EEMEM = { 0x3e,0x51,0x49,0x45,0x3e, 0x00,0x42,0x7f,0x40,0x00, 0x42,0x61,0x51,0x49,0x46, 0x21,0x41,0x45,0x4b,0x31 }; Niestety przy takiej deklaracji pierwszy element tablicy nie będzie znajdować...
Tu masz algorytm z książki Pana Sysło "Algorytmy": http://www.oeiizk.edu.pl/informa/rembeck... (na dole strony) pozdrawiam
Witam, ten sposób z przepisywaniem bitów z "char" na tablicę uint8_t jest bez sensu. W Twoim przypadku problemem jest zawartość tablic tab i res (bity 7 i 6) jeśli ustawiasz prawidłowo tylko niektóre (0-5 dla liczb i 0-6 dla liter). Rozwiązanie doraźne: wyzeruj całą tablicę res w funkcji LCD_SendChar() przed użyciem. Mniej doraźnie: przepisz zawartość...
W Arduino są funkcje do konwersji między tablicą char i String. Linki już miałeś podane do Arduino Reference, a tam na dole spis funkcji/metod z przykładami.
Szukam odpowiedzi DLACZEGO w c nie inicjalizuje się tablic w taki sposób: char tablica[20]; tablica = "cos"; zastanawia mnie przyczyna i jakieś niedoskonałości techniczne związane z brakiem możliwości całkiem dowolnej inicjalizacji w dowolnym miejscu programu takiej tablicy W necie nie ma odpowiedzi konkretnej na to pytanie, jedynie...
jak przekazać wartość do zmiennej zapisaną w tablicy. Wartości do obliczeń przechowuję w tablicy (char). Czy twoja tablica to : 1. tablica wskaźników do typu char Przykład tablicy: [syntax=c]char * tablica[]= { "123123123","1231234413","245875897345",... 2. tablica char-ów (tylko pojedyncze znaki) Przykład tablicy: [syntax=c]char...
Określenie "nie działa" jest dość ogólnikowe..nie kompiluje się?jeśli tak, z jakimi błędami? System przyjmuje w argumencie tablicę char. nie wystarczy stworzyć pomocniczej zmiennej typu string, a w wywołaniu użyć: zmienna.c_str()
Coś chyba źle robie... Tak , nie myślisz ;) Na 100% , argumentem dla lcd_puts jest wskaźnik na (tablicę)char , a i ostatni argument w dtostrf , to też ten sam typ ;) Piotrek
for (y=0;y<=10;y++) { printf ("%c",tab[y]); }
Zrób tablice kwadratową : char tablica [index][max dlugosc slowa]; Czyli np. char tablica [1000][30]; Takie coś pomieści 1000 wyrazów o długości do 30 znaków. A wczytujesz : scanf("%s", &tablica[index]); Powodzenia ! P.S Jeśli ma to być dynamiczne to może jakaś tablica list z STL'a, tak będzie najprościej :)
Marnowanie pamięci....
Stwórz 3 elementową tablicę wskaźników na tablice; unsigned char PROGMEM *buzia = {buzia0,buzia1,buzia2}; a następnie przekazuj jakoś tak: lcd_send(pgm_read_byte((buzia[a])[][]); Kod poglądowy pewnie nie zadziała od razu :)
Sama struktura jest deklaracją, tzn zawiera jedynie opis. musisz utworzyć zmienną typu tej struktury: struct struktura { char zn[12]; } ; tworzenie niejawne struktura aaa; aaa.zn[0] = 'a'; tworzenie dymaniczne(jawne): struktura aaa = new struktura aaa->zn[0] = 'a'; Polecam książkę "Symfonia C++" tanm jest wszysko prosto opisane
Zdaje się, że pominąłeś deklarację typu elementu tablicy jako char, czyli są inty. Więc ten napis chyba tam jest, tylko litery będą oddzielone zerami. Spróbuj dodać tam char, np. static const char test[] = {...} Nie było żadnych ostrzeżeń kompilatora w tej linijce? Druga opcja jest taka, że linker wyrzuca tą tablicę ze względu na brak odwołań, ale wtedy...
char tablica[3200]; //... short int *tablica2 = (short int*)tablica;
Zmień: [syntax=cpp]char remoteFile[20] = adres;[/syntax] na: [syntax=cpp]char *remoteFile = &adres[0];[/syntax] A na przyszłość poczytaj troszkę o konwersji typów, zmianie string na char (np. tutaj: [url=http://stackoverflow.com/questions/... to char*, lub zmodyfikuj funkcję odczytującą adres...
Pokazałem tylko przykład, ale bez sposobu jak to zrobić: sprintf((char*)UARTx, "%s", (char*)tablica No i tak sobie ping-pongujemy, a dokładnego typu tablicy wciąż nie podałeś (zarówno `char* tablica[5][10]` jak i `char tablica[5][10]` są dwuwymiarowe, czyż nie?). Jak przychodzisz do lekarza, to też jesteś taki tajemniczy? Zapewne zamiast podawać pierwszy...
Witam. Mam taki oto nieskomplikowany kod: [syntax=c] #include <avr/io.h> #include <stdio.h> #include <stdint.h> #include <util/delay.h> #include "MyLibs/NokiaLcd.h" #define BAUDRATE 9600 #define UBRR_VALUE (((F_CPU / (BAUDRATE * 16UL))) - 1) #define d_RECEIVE_DATA_COMPLETE !(UCSR0A&(1<<RXC0)) void USART_INITIALIZATION(void);...
Mam pytanie odnośnie tablic dynamicznych w c++ char *tablica; tablica=new char[5]; [...cos tam sie wpisuje do naszej tablicy...] tablica=new char[10]; Czy ta ostatnia linijka powiększy moją tablicę uszkadzając w niej dane czy je pozostawi na swoim miejscu i tylko doda nowe komórki na końcu?
Niestety przesiadka na C też by nic nie dała, ponieważ on też tego nie kontroluje. Jeśli zadeklarujesz tablicę o długości 10 bajtów i odwołasz się do niej: char tablica[10]; tablica[12] = 1; to się wzburzy że jest błąd, ale jeśli zrobisz tak: char tablica[10]; char tablica1[20]; strcpy(tablica,tablica1); to nie...
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...
To jeszcze z kodu tymona. Rozumiem- ale nie mogę jeszcze zrozumieć tego: LCD_WriteText((char*)tab)... to jest kolego tzw nadgorliwość :) raz ze w epilogu została zadeklarowana tablica char tab[11] a wywołanie procedury LCD_WriteText bedzie tak samo skuteczne bez (char *) jak z tym. To by było słuszne gdyby tab z deklaracji i tab...
Co do ostrzeżenia: void lcd_chr(unsigned char xsize, unsigned char ysize, unsigned char xpos, unsigned char ypos, const unsigned char *chr) Jak masz tablicę cost, to musisz zagwarantować, że ptr też nie bedzie zmienial danych.
unsigned char tablica definiujesz tak: prog_char unsigned char tablica[] = { 128, 134, 136, 134, 128, 116,….. } i kompilator wstawia ją tylko do flesha
Usunięcie tablicy nie przyniosło oszołamiających efektów, choć poprawiło sytuację. Dane są wysyłane poprawnie do mniej więcej 32 czy 64-tej próbki, a ja chciałbym wysłać ich 255. Kolejne próbki po bodajże 64-tej znów są przekłamane. Nie wiem w czym piszesz, ale dziwnie działasz na wskaźnikach/adresach. Poza tym rzutując na unsigned char ograniczyłeś...
#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...
w hypertetminalu char NEWLINE[] = {'\n','\r',0}; // tablica zawiarająca znaki nowej linii char CLEAR[] = {27,'[','H',27,'[','2','J',0}; // j.w. ale czyszczącza ekran terminala char HOME[] = {27,'[','H',0}; // j.w. ale przestawiająca kursor na początek char SPACE[] = {' ',' ',' ',' ',0}; // j.w. spacje wysylasz te lancuchy na rs skopiowane z elektrody
Witam jak zainicjowac tablice stringiem w funkcji ? Wymyśliłem coś takiego jak poniżej ale niestety program nie zwraca mi nic a moim zdnaiem powinna zwrócić wartość SLOWO:/ #include <iostream> #include <string> #include <conio.h> #include <fstream> using namespace std; char tablica[30] ; char zapis() ; int main()...
A nie jest czasem tak, że tablice stringów muszą być inaczej deklarowane, żeby siedziały w PROGMEMie? Nie jest tak. Zwróć uwagę na różnicę między definicją tablicy wskaźników do stringów a definicją tablicy stringów. Tobie się właśnie to pomyliło. char *tab to nie to samo co char tab Tablica wskaźników do stringów musiałaby być inicjalizowana jak w...
A może mi ktoś pomóc czy dobrze rozumiem jakby potem wyglądało wypełnianie pól struktury. Załóżmy, że: [syntax=cpp]struct OSOBA { char * imię; char * nazwisko; struct OSOBA * zwierzchnik; }osoba;[/syntax] W układzie B: [syntax=cpp] tablica[0]=malloc(sizeof(osoba)); tablica[0]->imię = malloc(200 * sizeof(char)); tablica[0]->imię= "Jan"; tablica[0]->nazwisko=malloc(200...
bez gwiazdek char *napis[10] = {"HELLO"}; -> to jakies ufo - wskaznik na tablice ewentualnie tablica wskaznikow [; powinno byc: char napis[]="HELLO"; LCD_WyslijLitery(*napis); -> kolejne ufo (podstawy c), do funkcji powinienes przekazac adres pierwszego elementu, a tak sie sklada, ze nazwa tablicy jest wskaznikiem na pierwszy element, czyli: LCD_WyslijLitery(napis);...
(...) .db "Jakis napis",0x0a,0x0d, 13,12, 0 lpm acc, z (lub z+) A co to za potworki? Znak końca linii (i do tego windowsowy :/) też nie jest potrzebny, wystarczy samo zero, chyba że urządzenie komunikuje się z windowsowym terminalem tekstowym przez rs-232. I skąd się wziął akumulator w AVR? W C robisz tak (avr-gcc): #include <avr/pgmspace.h>...
Wydaje mi się, że to jest tak: char * znalezione[1500] jest tablicą wskaźników na typ char. W pętli while deklarujesz i używasz zmiennej: char cos[90] To do niej zapisujesz sciezke znaleznionego pliku. Wykonujesz też przypisanie: znalezione[i] = cos; Musisz mieć świadomość, że po tym przypisaniu w tablicy znalezione znajdzie...
powinieneś zadeklarować tablicę w następujący sposób: prog_char TABLICA[3]={0,1,2}; a następnie użyć jej następująco: PORTB=pgm_read_byte((char*)TABLICA[2]);
Witam, Zmiennych się nie tworzy, tylko deklaruje. Jeśli wiesz, ile maksymalnie razy wykona się pętla, to użyj tablicy: char tablica[ROZMIAR]; int i; for (i = 0; i < ROZMIAR; ++i) tablica[i] = ... Oczywiście ROZMIAR nie może być zmienną. Jeśli nie wiesz, albo Ci szkoda tyle pamięci na raz, to tablicę przydziel dynamicznie ->...
Tu nie ma co konwertowac - liczba jest ta sama - kwestia tylko sposobu wyswietlania. Pokaz Twoje funkcje do wyswietlania i ta tablice. BF
Coś naplątałeś... Aby uzywać malloca bez dziwnych errorów, musisz zadeklarować odpowiednią ilość miejsca na stertę . Co z tego, ze twoje zmienne zajmują niewiele ramu, skoro najpewniej ustawiles sobie parę kB sterty, i gdy przekroczysz te pare kB, program ci sie natychmiast wykrzaczy, bo oczywiście najpewniej nigdy nie sprawdzasz, czy malloc przypadkiem...
W ten sposób wypełniasz tablicę jakimiś znakami kontrolnymi, a nie kodami cyfr chyba, że o to chodziło. Poza tym dla liczb mniejszych od 999, będą z "przodu" '\0'. Potrzebuje to do zapisania większej liczby od 255 w EEPROM. Czemu nie użyjesz EEPROM.put()? :)
Wystarczy ze napiszesz unsigned char string[5]; .... int main(void) { string = "Tekst"; string[5] = 0; } ... ... a podczas kompilacji zobaczysz pięknego ERROR-a ;) Wyłażenie "poza string" (string ... #include <string.h> char string[6]; char strptr *; .... int main(void) { strptr...
tablica chara tablica chara flash chara tablica atmega
linux puppy zakładać panewka ademco express
Lokalizacja wentylatora w Panasonic TX-P42ST50E Odblokowanie radia Ford 500CDR w Focus MK1