Chodzi o to że chciałbym użyć wskaźnika tej tablicy jako argumentu funkcji ethernet.write(). Ale właśnie doczytałem że można też wysłać wskaźnik i długość tablicy, jest to przewidziane.
Troszkę już zmęczony jestem, ale na szybko naskrobałem coś takiego: [syntax=cpp]void parzyste(int t[],int wielkosc) { int l_parzyste=0; int l_nieparzyste=0; for(int i=0;i<wielkosc;i++) { if (t[i]%2 ==0) { l_parzyste++; } else { l_nieparzyste++; } } cout<<"Parzystych: "<<l_parzyste<<endl; cout<<"Nieparzystych: "<<l_nieparzyste<<endl;;...
Niestety nie ma tak latwo. Przekazywanie tablicy dwuwymiarowej (podobnie dla wiekszej ilosci wymiarow) do funkcji/metody mozna jednak rozwiazac na kilka sposobow: 1. Jesli znana jest wartosc drugiego wymiaru (ilosc kolumn) to mozna to zrobic w nastepujacy sposob: //deklaracja void setAll(float [][3]); //rownowazne z: void...
Czyli mam przywiechę na funkcji: jpeg_start_compress(&cinfo, TRUE); No i nie wiem co z tym zrobić. Właśnie do tego przydają się JTAGi Mam nieodpowiednie przekazanie parametrów do funkcji compress_jpeg, ale kompilator wywala tylko warninga więc chyba dokonuje odpowiedniej konwersji (samemu robi wskaźnik). Próbowałem też przekazywać bezpośrednio wskaźnik,...
Ten przykład używa porównania liczb w ciele funkcji sortującej (obojętnie quicksort, czy bąbęlkowe) który nie ma sensu w kodzie innym niż dydaktyczny. Bardziej profesjonalne jest przekazanie do funkcji sortującej "komparatora". W klasycznym C jest to zwykle wskaźnik na funkcję o nagłówku: A z czym konkretnie ma kolega problem? Bo tu "zwykły" algorytm...
Witam ponownie po dłuższej przerwie. W międzyczasie usunąłem jeszcze jeden zauważony błąd powodujący zawieszenie się odtwarzacza, a przedtem wyświetlenie śmieci na LCD. Błąd ten pojawiał się, gdy do odtwarzacza włożyło się nowo zakupioną lub pustą po formacie kartę SD. Błąd ten usunąłem modyfikując fragment funkcji main, jak poniżej: if (! (AT91F_PIO_GetInput(AT91C_BASE_P...
na początku zadeklarowałeś że funkcja będzie przyjmować tylko char (3 linijka programu), zmień to na char[] albo char tab[] :-) po drugie w definicji funkcji (pod koniec programu) masz zamienione miejscami wyrazy - zamiast int funkcja... masz funkcja int...
Da się coś takiego zrobić w c# aby nie inicjalizować tablic i parametry przekazywać na sztywno? Co przez to rozumiesz?? Tą funkcję co masz możesz wywołać pisząc: [syntax=csharp]zapytanie_zwykle( new string[] { "pole1", "pole2", "pole3" }, "tabela_nazwa", new string[] { "jakiś tam warunek" });[/syntax]
Arg1 - Required - Range - The range of cells from which you want to count cells. Nie da się bezpośrednio przekazać tablicy do funkcji licz.jeżeli.
To tylko warning (ostrzeżenie) a nie błąd i wystarczy wpisąć np: TxCAN_20A(1,2,4,(char *)dane_RS) by się go pozbyć.
Hasła do google odpowiednio: przekazywanie przez wskaźnik przekazywanie przez referencje zwracanie przez wartość
To proste. zmienna_RX jest jednym char a nie tablica. Nie możesz przekazać nawet jej adresu do funkcji bo funkcja oczekuje wskaźnika do tablicy char z zerem na końcu tekstu. Czyli muszą być przynajmniej 2 char. Jak to wcześniej pisano musisz po prostu nauczyć się podstaw C
Witam wszystkich. Zaprojektowałem i uruchomiłem zegarek z wyświetlaczami LED(SA10-21GWA) i układem PCF8583 współpracującym z mikroprocesorem Atmega8 oraz układami PCF8574AP na szynie TWI(i2c). http://obrazki.elektroda.net/21_12497604... http://obrazki.elektroda.net/58_12497606... http://obrazki.elektroda.net/95_12497605...
Dane typów prostych (char, int, uint16_t, itd.) kopiujesz w sposób bezpośredni (operatorem "="), tak jak masz to w kodzie: [syntax=c]pamiecID[0][pozycja]=rxId;[/sy... Dane typu tablicowego kopiujesz z pomocą pętli (przechodząc kolejno przez wszystkie elementy) [syntax=c]for (int i=0; i<len; i++) { dst[i] = src[i]; }[/syntax] lub korzystając z jakiejś...
#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...
Jeśli to GCC (a wszystko wskazuje, że tak) to musisz na początku dodać: [syntax=c]#include <avr/pgmspace.h>[/syntax] Tablice deklarujesz tak: [syntax=c]unsigned char logo_bmp[] PROGMEM ={....[/syntax] Przekazanie tablicy do funkcji najlepiej robić przez wskaźnik do tablicy (w c sama nazwa tablicy to wskaźnik do jej pierwszego elementu). Czyli:...
Mam jeszcze takie pytanie w jaki sposób znaleźć w tablicy wszystkie liczby np z cyfrą 3 na końcu.
Nie bardzo jednak widzę potrzebę atomowości pozyskiwania wskaźnika. Poza tym, skoro przekazuje ten argument w wywołaniu funkcji to jak mam zapewnić atomowość przekazania i właściwie po co? Wróćmy jeszcze raz: - ISR dodaje w dowolnej chwili nowe elementy tablicy struktur ustawiając flagę dla pętli głównej, że jest co najmniej jeden, nowy element. Prosta...
Dodam troszkę więcej zaobserwowanych informacji. Otóż konstrukcyjnie funkcja wywoływana wskaźnikiem i2c_func_exe ma postać: [syntax=c] typedef enum { I2C_READ, I2C_WRITE, I2C_ERROR, }i2c_transmission_type; i2c_function i2c_clock_read_time(uint8_t *i2c_frame_ptr,uint8_t *i2c_data_length,i2c_transmission_type *read_write) { *(i2c_frame_ptr+I2C_ADDRESS_OFFSET)=CLOC...
Swoją drogą nie polecam Ubuntu. A szczególnie 12.04 (jest baaardzo niestabilny jak na razie). Dla nie doświadczonych użytkowników polecam Debiana, a dla tych którzy mieli już linuxa to Gentoo. Narzędzia te działają tak: - kompilujesz program z flagą debuggera (g++ -g nazwa.cpp -o nazwa), jak chcesz to też inne parametry podajesz, - odpalasz jeden z...
Witam, mam taki problem: char napis[] PROGMEM = {"test"}; // definiuję napis w pamięci FLASH typedef struct { char * wsk; // struktura ma zawierać wskaźnik do napis'u } t_text; // definiuję strukturę typu t_text t_text text PROGMEM = {napis}; // definiuję zmienną text typu t_text i odrazu ją inicjalizuję...
[syntax=cpp]#include <iostream> using namespace std; const int szer = 2; const int wys = 3; void funkcja(int tab[][wys]) { for (int y = 0; y < szer; ++y) { for (int x = 0; x < wys; ++x) { cout << tab[y][x] << " "; } cout << "\n"; } } int main() { int tab[szer][wys] = {{0, 1, 2}, {3, 4, 5}}; funkcja(tab); return 0; } [/syntax]
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...
Widzę że pod nad Twoim avatarem masz komentarz "WWW, PHP, JS, FLASH, GRAFIKA PS". Zatem znasz PHP więc nie potrzebujesz żadnego programu, możesz sam napisać skrypt ściągający praktycznie co zechcesz. Postaw sobie serwer Apache z PHP w php.ini włącz funkcję "allow_url_include = On". Napisz skrypt PHP, który najpierw wczytuje stronę do jakiejś zmiennej,...
Napisałem naprawdę "łopatologiczną" funkcję która wyświetla liczby od 0 - 999, ale wiem że sposób w jaki to zrobiłem jest nieestetyczny programistycznie ;) , czy mógłby mi ktoś podpowiedzieć lub pomóc w napisaniu lepszej funkcji wyświetlającej liczby z podobnego lub nawet i większego zakresu ? Poniższa funkcja działa bez problemu wyświetlając nawet...
damiano713 --> czy jak napisałeś , że sprawdzony to - sam może go sprawdzałeś ??? BoskiDialer --> wow ;) "Kod poprawiany w oknie pisania wiadomości" ale ok na razie po kolei próbuję to co napisałeś uruchamiać i sprawdzać czy działa. Czyli zanim nawet przerobiłem pliki arp.c dodałem w pętli głównej programu sam kod do tworzenia i wysyłania ramki...
nazwa tablicy jest wskaźnikiem na jej pierwszy element. funkcje zadeklaruj jako ...(unsigned char* sec) i wywołuj ...(SectorG1). W funkcji odwołuj się normalnie - jak do zwykłej tablicy (sec[i]=...) 4\/3!!
Bzdura, czy przekażesz do funkcji tabela, czy &tabela wyjdzie na to samo - poczytaj o tym jak są przekazywane tabele jako argumenty funkcji w C. A problem leży w tym o czym już pisałem - globalny wskaźnik nie może wskazywać na dane lokalne, które nie są zaalokowane dynamicznie lub ich czas życia nie jest nieskończony jak w przypadku static. Zastanów...
unsigned char * buf_o = &(Pointer->Buffer_O[0]... WriteFile( hCom, &(Pointer->Buffer_O[0]... ... ); Zmieniłbym nazwę pola Thread na CmdStopThread albo coś podobnego.
Zauważ że instrukcja [syntax=c]char * A = malloc(5);[/syntax] powoduje zalokowanie pamięci. Następnie: [syntax=c]A = "Test";[/syntax] Powoduje zgubienie wskaźnika do wcześniej zaalokowanej pamięci i ustawienie A na stałą "Test". W kolejnych instrukcjach przekazujesz wskaźnik na stałą do funkcji która ma coś pod ten wskaźnik skopiować. Dodatkowym błędem...
Podejdź inaczej - czemu nie przekażesz do funkcji tablicy? BTW "odchudzenie" to trochę nieprecyzyjne. Chodzi Ci o: A. Zmniejszenie ilości kodu źródłowego? B. Zmniejszenie wielkości kodu wynikowego? C. Zmniejszenie zapotrzebowania na pamięć kodu wynikowego? D. Przyspieszenie działania kodu wynikowego?
Mam taki problem że nie mogę przekazać tablicy do funkcji. W mojej funkcji nie mogę operować na tablicy? Gdzie robię błąd? Kompiluje sie ale wywala konsole Mi nie udało się skompilować w takiej formie jak podałeś. A po niewielkich poprawkach ruszyło, poczytaj proszę o tablicach i wskaźnikach. void wczytaj_plik(char* tab[][16])...
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])
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...
Chcesz przekazać po wywołaniu zdarzenia kontrolki, tablice kontrolek w której się ona znajduje do funkcji zaznaczenie_badan? Patrząc na logikę znalazłem przy okazji parę błędów w kodzie. Chyba że kod jest bardziej obszerny niż tu przedstawiłeś. W każdym bądź razie napisałem zgodnie z Twoim kodem takie coś ale nie wiem czy o to Ci chodziło: [syntax=vbnet]...
Odnośnie pierwszego problemu: Jeśli chcesz po prostu wyświetlić macierz T wpisz ....... T(i,j)=round((I(i,j))/2^k); end end T Tylko bez średnika za T.
Propozycję kodu od kriss68 jak i od mirekk36 działają. Jednak jestem ciekawy czy można to zrobić tak jak zakładałem na początku czyli wpisując wartości liczbowe do tablicy przy wywołaniu funkcji.
Zobacz przykład: #include <iostream> using namespace std; bool funTrue() { cout << true << endl; return true; } bool funFalse() { cout << false << endl; return false; } void evaluate(bool (*pFunc[])(), int n) { for(int i = 0; i < n; i++)...
Problemem u Ciebie jest to że robisz funkcję która jako parametr przyjmuje strukturę która jest dopiero zdeklarowana po funkcji.
Mam problem z przekazaniem tablic do funkcji. Mam tablice dwuwymiarowe i chce je przekazać do funkcji ale bez podawania rozmiarów tych tablic. Mam tablice tab1[2][5] i tab[2][5] i teraz: void funkcja(int **A, int **B) - nie działa :( Wie ktoś jak to można zrobić poprawnie??? Z góry dzieki za pomoc.
Tablice wartosc1,wartosc2,wartosc3 są zbyt małe muszą mieć po 3 elementy. W funkcji hextoul tratujesz przekazaną zmienną jako string kończący się 0, a w tablicach nie masz już miejsca na koniec stringu. Dalej nie przeglądałem.
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.
Z tablicą wskaźników spróbuję, może to byś faktycznie dobry pomysł. Chodź zastanawiam się czy nie stworzyć specjalnej funkcji do wyświetlania wartości tej konkretniej tablicy, program wielkościowo może być podobny. Z tym zwracaniem to dziwi mnie że _A bierze jako A, że pomimo prefixu _ jakoś rozpoznaje.
Odnośnie przedstawionego kodu, na wektorach grach i hasło powinieneś wykonywać metodę push_back(), a nie "gracz[miejsce] = ..." - bo te wektory są początkowo puste, więc wpisujesz nie wiadomo gdzie i to nie zadziała. Jeżeli chcesz stosować takie podejście, musisz przekazać do ich konstruktorów początkową wielkość, czyli przykładowo vector<string>...
Pewny nie jestem, ale chyba powinieneś przekazać nie zmienną jako taką, ale adres tej zmiennej, czyli wywołać przez referencję.
Jest chyba typ POINTER TO ARRAY[1..13] OF BYTE I taki typ musisz zadeklarować
Natomiast jeśli przeniosę ciało funkcji do main() i podstawię konkretne liczby zamiast zmiennych to wszystko działa. Kod jest zły, a nie, gdzie będzie umieszczona i zamiast zmiennych, będzie miała stałe (konkretne liczby).
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);...
Co do redefinicji - z obu plików nagłówkowych masz wskazanie do pliku zawierającego klasę "rycerz". Domyślam się, że tu będzie tkwił problem. Co do tablic - zwraca się wskaźnik na tablicę. Ale jeśli tablica jest tworzona w instancji funkcji - trzeba operować parametrami preferencyjnie przekazanymi.
tylko ze później musiałbym to konwertować jeszcze na liczby - i działałoby to tak samo - bo teraz funkcja nie modyfikuje zawartosci tablicy, tylko działa na lokalnej kopii!! cały problem rozchodzi się wskazniki!! ROZWIAZANIE PROBLEMU - doszedłem w końcu jak to zrobić w nagłówku ma byc tak #define MAX 10; //MAX to maksymalny rozmiar tablicy int wczyt(....,float...
Jak przekazać do funkcji wskaźnik do tablicy odrazu z pzresunięciem w jej obrębie. Ja próbuje w sposób: MojaFunkcja (&wskaznik+16); ale tak nie działa.
Witam serdecznie, mam pewien problem z kategorii tych najbardziej żenujących, czyli problem z wyklepaniem kodu w C. Pracuję teraz nad funkcją, która będzie pobierała wskaźnik do dwuwymiarowej tablicy zapisanej w pamięci programu. Cały problem polega na tym jak wskaźnik do tej tablicy przekazać do funkcji? Przekazanie jako **pointer nie działa. Zamieszczam...
Witam! t_f jest wskaźnikiem do I-elementowych tablic typu (typ) [syntax=c]int main(void) { void nowa_plansza(pole *(*)[11]); // deklaracja zapowiadająca, inaczej: prototyp funkcji pole *tab[11][11]; // zadeklarowana tablica lokalna // Teraz wywoływana jest funkcja do której jest przekazana tablica lokalna tab nowa_plansza(tab); return (0); } /* Parametr...
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.
w Zamien miałeś przekazać w parametrach referencje do obiektów, a nie stringi. Podandto funkcji (metodzie) nie możesz przypisywać wartości - metody się wywołuje.
Chciałbym aby moja moja funkcja przyjęła jako argument jednowymiarową tablicę z dowolnym typem danych i zwróciła liczbę elementów tablicy To nie zadziała - na podstawie wskaźnika nie dowiesz się jak duża jest tablica. Wskaźnik wcale nie musi być tablicą. Sizeof wskaźnika to 4 albo 8 bajtów, obojętnie na co wskazuje.
czyli jeżeli przekażę do funkcji tablicę globalną przez wartość zadeklarowaną jako: const uint8_t tablica[1000]; to wewnątrz wewnątrz funkcji program będzie się odwoływał do poszczególnych komórek pamięci(bo nie może zostać zoptymalizowana) ? ale jeżeli utworzę tablicę globalną jak poniżej: static const uint8_t tablica[1000]; i również przekażę ją do...
Jeśli badać na bieżąco podczas losowania to nie ma tu miejsca na funkcję. Jeśli zbadać po wylosowaniu, to można do funkcji przekazać tablicę i w wewnątrz tejże funkcji wykonać pętlę sprawdzającą wszystkie elementy.
Nazwa tablicy jest wskaźnikiem do jej pierwszego elementu, więc zamiast pisać ptr_tab = &tab[0] ja bym użył po prostu ptr_tab = tab. Poza tym rzeczywiście dziwne, że chce się skompilować zainicjalizowanie pustej tablicy czymkolwiek... Chyba, że ono jest w takim miejscu programu, w którym i tak nie działa...?
Dzięki. Zrobiłem trochę inaczej - funkcji przekazałem tablicę jako parametr i tam ją uzupełniłem. Ale na przyszłość się przyda :)
1. Tak, jak przypiszesz null, lub nic ne przypiszesz do wskaźnika w trakcie jego życia to if nie przejdzie. 2. Tak, wynikiem będzie 33. Chociaż przekazanie powinno być inne, w przeciwnym wypadku dostaniesz warningi: [syntax=c] //1. Funkcja( &tablica[0] ); //2. Funkcja(tablica ); [/syntax] Może się to na pierwszy rzut oka wydawać dziwne, ale jeżeli się...
A tak w ogóle - definiujesz tablicę 3x4 a chcesz przekazać jako 3x3? Odnośnie przekazania - jeśli piszesz tab[a][b] to jest to wartość pod tego adresu tablicy, a nie cała tablica. A przecież do funkcji musisz przekazać całą.
Witam Stworzyłęm sobie strukturę, a następnie stworzyłem tablicę typu tej struktury. Wykorzystuję to do wyświetlania menu. Tablicę umieściłem w pamięci programu. Problem objawia się w tym, że nie wiem jak przekazać tą tablicę do funkcji. Czy można przypisać jej jakoś wskaźnik i później przekazać wskaźnik do funkcji czy zrobić to za pomocą indeksó tablicy....
Witam, Ale nie chce przekazywać do funkcji całej tablicy dwuwymiarowej I tego nie robisz. Przekazujesz tylko adres. my_fb1 (pNumberChecked:= ADR(checked_options Powinno zadziałać. Pozdraiwam,
No i już staje sie jasne. Przekazujesz adres zmiennej buffer ( (at)buffer ), co powoduje wskazanie wskaźnika do tablicy, nie zaś samej tablicy! Obowiązkowo masz przekazać adres pierwszego miejsca w tablicy ( (at)buffer ). Wciąż nie zmieniłeś na właściwe typów unsigned long -> longword ?
Dawno nie programowełem w C++, ale na pierwszy rzut oka: - złe przekazanie tablicy jako argumentu funkcji, - funkcja nie przeszukuje całej tablicy (powinna być pętla) tylko sprawdza jeden element liczenie[rozm], ktorego zawartość jest nieokreślona (elementy tablicy indeksowane są od zera, więc ostatni element to byłoby liczenie[rozm-1] )
Głowy teraz nie dam, ale o ile pamiętam, to każda zmienna tablicowa w parametrze funkcji w języku C oznaczała wyłącznie wskaźnik na dany typ. Ale możesz prosto to sprawdzić - przekaż do funkcji tablicę, zmień jej wartość i ponownie sprawdź po wyjściu z funkcji :)
Kręcisz się w kółko. Zrozum, że w komórce nie zapiszesz danych jako VBComponent, Object, etc. W związku z tym nie uda Ci się ich pobrać i przekazać do funkcji w taki sposób. Możesz zapisać w tablicy nazwy obiektów, ale w odwołaniu musiałbyś używać jej indeksu w tablicy (liczby), nie nazwy. Metodę pobrania nazwy arkusza (Properties.Item) znając nazwę...
Twoja funkcja Write_Comm działałaby dobrze, gdyby nie to, że przekazujesz jej zły rozmiar. Dlaczego używasz strlen na czymś (tablica bajtów), co nie jest napisem? Poczytaj jak działa strlen i potem dopiero używaj. A w tym przypadku, chcesz wysłać 4 bajty, to przekaż 4.
A jeśli chce przekazać całą tablicę file_content do innej funkcji (z funkcji do funkcji)?
pamiętaj również o dynamicznej alokacji pamięci dla tej zmiennej (konieczne, jeśli nie znamy rozmiaru tablicy)
Tak, to wiem, ale funkcja będzie pobierać dane wg swojej deklaracji czy wg deklaracji tablicy? Według swojej deklaracji. Jeżeli przekażesz do funkcji tablice: [syntax=c] uint8_t tab[] = {0x14, 0x2A, 0x56, 0xDF}; [/syntax] to w funkcji odczytasz przez wskaźnik na zmienna 16 bitowa (zakładając ze procek jest little endian): [syntax=c] font[0] - 0x2A14;...
Po ludzku, chciałeś kolego liczyć długość czegoś co niejest łańcuchem, tylko już pojedynczą literką... (char) Musisz przekazać wskaźnik na tablicę do funkcji zapewne;).
Przez rozmiar programu miałem na myśli umieszczone we flashu także dane. Jeśli bym chciał umieścić 10 tablic po 10k bajtów to jak należałoby zmodyfikować program? Zamiast przekazywać funkcji wskaźnik f(const uint8_t *buf) miałbym przekazać wartość 32-bit f(const uint32_t buf) i traktować ją w ciele funkcji jako adres? Tylko w jaki sposób uzyskać adres...
Niestety takie rozwiązanie nie działa (próbowałem go już dawno) chyba że ZDEFINIUJE całą tą zmienną/stałą w pliku main (łącznie 128 wierszy kodu!). Jakieś inne pomysły? Przypomninam że to C18 Microchipa...
Chyba faktycznie powinno się dodać przycisk "wpuścił w maliny". ;) Po co for'em sprawdzac dlugosc tablic - mozna skorzystac z wbudowanej funkcji sizeof() ktora dziala zdecydowanie szybciej. Jaki sizeof? sizeof() zwraca statyczny rozmiar tablicy, który jest zawsze większy, niż długość napisu - przynajmniej w poprawnie napisanym programie. Ręczne liczenie...
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 {...
Potrzebuje napisać funkcję, która będzie zwracała tablicę dwuwymiarową. To niemożliwe w C. Mógłbyś co prawda zwrócić z funkcji wskaźnik do takiej tablicy, ale tu także problem, bo nie może to być lokalna tablica utworzona wewnątrz tej funkcji, gdyż po wyjściu z funkcji pamięć tablicy, do której zwracasz wskaźnik będzie zwolniona. Może utwórz tablicę...
1) Naprawdę, ale biblioteka standardowa umożliwia potęgowanie za pomocą funkcji pow(x,y). Btw potęgowanie jest proste do napisania, szczególnie gdy podnosisz do całkowitych potęg. 2) Taka tablica ma stałą wielkość i nie da się jej zmienić (jak jest zainicjalizowana w ten sposób to kompilator sobie sam sprawdza jej wielkość), wielkość tą da się sprawdzić...
Jezeli masz tablice: unsigned char data[] = { 0x02, 0x1c, 0xb8, 0x01, 0, 0, 0, 0xa2 }; to do funkcji mozesz przekazywac tylko jej elementy, np. data[0], data[1], ty natomiast probujesz przekazac wskaznik do tablicy.
[syntax=c]const uint8_t *ssd1306_fonts[]={&ssd1306_fonts_0[0],&s... Czemu nie chcesz do funkcji normalnie przekazać tablice? Na to samo wyjdzie.
tymon_x działa ale jak byś mi mógł jeszcze wytłumaczyć dlaczego tablica buf jest 3 elementowa ? buf A skąd ci się teraz wzięła tablica 3 elementowa ? przecież tymon_x nic nie pisał o tym. Podał ci tylko dobry sposób jak sobie wyświetlić pojedynczy znak z całej twojej tablicy jednej czy drugiej. Tablica w przykładzie kolegi tymon_x jest przecież 2 elementowa...
Takiego czegoś nie można raczej zrobić: Co miała by robić ta ostatnia instrukcja? Utworzenie tymczasowego obiektu tor i podstawienie (skopiowanie) do tablicy? Skoro potem używa się zestaw jako tablicy to i utworzenie tego jako tablice: [syntax=cpp]tor* zestaw; zestaw=new tor[ilosc];[/syntax] jest potrzebne. Problem polega na tym, że by można było utworzyć...
Witam udało mi się wydziergać n.w. kod. niestety mam problem, mianowicie muszę przekazac tablicę typu student o indeksie f do funkcji która ma zwrócić adres tej tablicy o indeksie f. nastepnie adres ten mam przekazac do nastepnej funkcji która zmieni w tablicy wartosci. Dokładnie chodzi mi tu o funkcję odszukaj(tablica,f); i dalej z jej & ->...
Jakoś mi tak ten trzeci sposób przemawia, więc nakieruję się na niego. Zerknij na źródło tej strony: http://gmaps-samples.googlecode.com/svn/... - tam właśnie jest tworzona anonimowa funkcja. W analogiczny sposób stwórz własną wykorzystując dane z tablicy.
Cały prezentowany w tym temacie kod jest - z punktu widzenia języka C++ - zły. Nie syntaktycznie, ale moralnie. Jeżeli tylko kluczowym wymogiem programu nie jest wydajność, w programie języka C++ nie należy używać tablic . Tablice są złe, ponieważ podczas przekazywania do funkcji ulegają degradacji do zwykłego wskaźnika - traci się informację o rozmiarze...
A może byś wywołał funkcje 'podzielne_przez_7' w funkcji głównej main() i przekazał jej 7-elementową tablicę 'liczby' jako argument funkcji. I jeszcze trzeba w tej funkcji poprawić dodawanie elementów tablicy bo przecież w ogóle ona tego nie robi... I umieszczaj kod w znaczniki!!! Wejdź sobie w inny temat i zobacz jak powinien kod w znacznikach wyglądać....
Owszem, optymalizator zna takie przypadki i wygeneruje super nieoptymalny kod: będzie przesuwać jedynkę w lewo jedyną możliwą instrukcją (przesunięcie w lewo) tyle razy, ile wynosi wartość zmiennej _bit. Niestety, ale jeśli zmienna _bit nie jest znana w czasie kompilacji, to w przypadku AVR'ów kompilator rozwija przesuwanie o zmienną w pętlę z przesuwaniem...
Problem stary jak C: Jak przekazać do funkcji wskaźnik na tablice a nie całą tablice ?? 1: jest tablica unsigned char tab[5] = {1,2,3,4} // o jeden mniejsza aby zmiescić "0" na końcu 2: jest jakiś wskażnik na pierwszy element tej tablicy ( którego ja nie umie zadeklarowac - chcociaż wiem że ma być gwiazdka ;-) ) 3: jest funkcja...
w funkcję do której przekażę jako argument tablicę char-ów, gdzie o tym poczytać? [url=http://cpp0x.pl/kursy/Kurs-C++/Pozi... Jest tam też wiele innych użytecznych lekcji ;)
W tej sytuacji najlepiej nie bawić się z externem, tylko przekazać do funkcji wskaźnik na "rejestr[]"
Witam Próbuję przekazać tablicę dwuwymiarową do funkcji, ale wyskakuje mi segmentation fault. Czy ktoś wie co napisałem źle? #include <stdio.h> void pobierz (int **wsk) { printf("%d\n", *(*(wsk)+1)); printf("%d\n", *(*(wsk+2))); } int main() { size_t...
bezposrednio nie jest to mozliwe tak jak ze zwroceniem wartosci liczbowej. funkcja w c moze zwrocic tylko JEDNA wartosc. moze zwrocic wskaznik - czyli jakby poczatek tego stringa. tyle ze zaalokowane wewnatrz funkcji zmienne po jej zakonczeniu sa zwalniane i nalezy zalozyc, ze przestaja istniec. oczywiscie wiadomo, ze przez chwile cos tam na tym stosie...
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ć...
To masz dwie - jedną przekazujesz, a drugą zwracasz. Nie rób tak, żeby przekazać wskaźnik i odebrać inny, bo się łatwo w pułapki wpędzisz w projektowaniu - po prostu nieintuicyjne to by było. Uważaj z tablicami dwuwymiarowymi, bo nie jestem do końca pewny, który wymiar jest jak traktowany między Delphi a C. Może bezpieczniej będzie posługiwać się formalnie...
Nie wiem czy dobrze rozumiem do czego dążysz ale możesz napisać coś takiego int funkcja(char *wsk) { *(wsk+3) = 2; return (int)*(wsk+3); } wywołanie char data[10]; funkcja(&data); tylko nie wiem poco. Jak używasz wskaźnika to pracujesz bezpośrednio na danych a nie na lokalnych kopiach. Jak chcesz się dowołać do x pola tablicy przekazanej przez pointer...
Bardzo proszę ponownie o pomoc bo znowu mam problemy z prawidłowym przekazywaniem zmiennych i obiektów funkcjom poza C. Otóż w programie main chcę zdefiniować tablicę w której jeszcze nie wiem ile będzie stringów (słów), wiem tylko że będzie takowa tablica. I potem ją chcę przekazać do funkcji poza main, gdzie dopiero zostanie określona liczba tych...
1. Kod, tak jak pokazałeś, to proste/czyste C nie C++, więc właściwie powinieneś się dookreślić... 2. Jeżeli C - przekazywanie tablic do funkcji odbywa się przez wskaźnik i funkcja operuje bezpośrednio na przekazanej tablicy, a nie na jej kopii - nie ma zatem potrzeby (i możliwości) jej zwracania. Tym bardziej funkcja typu int nie może zwrócić wyniku...
Jeszce jedno pytanie. Chciałem cały program podzielić na trzy funkcje : wpisywanie sortowanie i wypisywanie. Jak przekazać w tym przypadku argumenty(tablicy tablic charów)??
Czy jest jeszcze jakiś inny sposób, by zachować starą tablicę?:)No bo nie da rady tak przekazać argumentu by nie zmienić wartości tablicy poza funkcją prawda? Przekazując argument poprzez wskaźnik przekazujesz tylko adres tablicy, a nie całą tablicę. Tablice również możesz skopiować wykorzystując funkcję void f(int *wsk_old, int *wsk_new, int length)...
przekazanie wyniku funkcji przekazanie tablicy przez wskaźnik przekazanie sygnału
telewizor straci kolor pulsuje dioda e89382 hannstar
lampa solarna czujnikiem ruchu lampa solarna czujnikiem ruchu
Adaptacja przepustnicy po czyszczeniu Skoda Octavia 2 1.6 MPI 2004 Manualna adaptacja przepustnicy Skoda Octavia 2 1.6 MPI 2004