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ść
#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...
[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]
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!!
unsigned char * buf_o = &(Pointer->Buffer_O[0]... WriteFile( hCom, &(Pointer->Buffer_O[0]... ... ); Zmieniłbym nazwę pola Thread na CmdStopThread albo coś podobnego.
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...
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?
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.
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++)...
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.
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])...
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.
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.
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...
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.
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).
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...
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;;...
Jest chyba typ POINTER TO ARRAY[1..13] OF BYTE I taki typ musisz zadeklarować
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.
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.
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>...
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...
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.
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.
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...
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...
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]...
Dzięki. Zrobiłem trochę inaczej - funkcji przekazałem tablicę jako parametr i tam ją uzupełniłem. Ale na przyszłość się przyda :)
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....
Pewny nie jestem, ale chyba powinieneś przekazać nie zmienną jako taką, ale adres tej zmiennej, czyli wywołać przez referencję.
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łą.
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.
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 :)
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:...
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
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] )
Ale nie chce przekazywać do funkcji całej tablicy dwuwymiarowej tylko jej konkretny wiersz. Czyli mogę przekazać adres pierwszego elementu w 27 wierszu jak niżej: [syntax=c] my_fb1 (pNumberChecked:= ADR(checked_options[27,0 ]) ); [/syntax] I potem w funkcji będę operował tylko na tablicy jednowymiarowej , czy coś namieszałem ?
A jeśli chce przekazać całą tablicę file_content do innej funkcji (z funkcji do funkcji)?
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.
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...
pamiętaj również o dynamicznej alokacji pamięci dla tej zmiennej (konieczne, jeśli nie znamy rozmiaru tablicy)
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;).
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;...
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...?
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.
[syntax=c]const uint8_t *ssd1306_fonts[]={&ssd1306_fonts_0[0],&s... Czemu nie chcesz do funkcji normalnie przekazać tablice? Na to samo wyjdzie.
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ę...
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.
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ę...
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ę...
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ć....
Mam jeszcze takie pytanie w jaki sposób znaleźć w tablicy wszystkie liczby np z cyfrą 3 na końcu.
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...
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...
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 ?
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,...
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 ;)
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...
W tej sytuacji najlepiej nie bawić się z externem, tylko przekazać do funkcji wskaźnik na "rejestr[]"
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...
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])
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ć...
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...
no bo rozumiem, że funkcja: odebrane ) do kanału UART6 Dodano po 18 W momencie w którym wysyłam cokolwiek tzn. z punktu widzenia modemu "bzdurę" czyli nie "AT" a np. "ab" czyli coś czego modem nie zna, to dostaję z powrotem to, co wysyłam czyli "ab"
ok, nowe okoliczności - nowe założenia - operuję na tablicach dwuwymiarowych czyli rekordy o stałej długości (wektory xy) o różnych wielkościach - zamierzam taką tablicę (wskaźnik do niej) przekazać funkcji dll która po przetworzeniu danych zwraca mi nową tablicę (inny, nieznany mi rozmiar). Z tego co piszesz to wydaje mi się najrozsądniej zrobić tak:...
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...
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.
to z returnem (co w końcu tam ma stać?) Nic nie musisz zwracać. Funkcja przecież zwraca dane zapisując je do tablicy przekazanej jej jako parametr. po co dawać długośc miejsca na rzymską? Bo skąd funkcja wywoływana ma wiedzieć ile jest wolnego miejsca w tablicy, którą dostaje? Jeśli nie przekażesz rozmiaru, to funkcja wywoływana i wszystkie funkcje...
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...
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)...
Niestety te dynamiczne tablice na FREE PASCALU nie działają przynajmniej nie u mnie. Po przemyśleniach doszedłem do wniosku ze najprościej będzie jak liczby wyplenią np 20 elementową tablice i teraz mam takie pytanie. Na początku deklaruje 20 elementową tablice potem mam funkcje która daje wartość prawda i fałsz a potem najlepiej by było wartość tej...
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...
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)??
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ć...
Faktycznie on działał dobrze :) Zamieszalem sie i zamiast wpisywac index tablicy wpisywalem numer albumu :D Dzieki wszystkim za pomoc
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...
Ale zmienia zawartość tej tablicy. Ma do tego "prawo", bo paratetr nie jest zadeklarowany jako const. Racja.
Wskaźnik zawierający adres 0 - bez wątpienia pojawią się dziwne rzeczy: w przestrzeni pamięci pod adresami 0-31 dostępne są rejestry procesora, więc komórka eq przekazywać do funkcji wskaźnik na tablicę, przez co tablica może zostać utworzona na stosie przez funkcję nadrzędną i wypełniona przez aktualną funkcję. Nie trzeba żadnej globalnej tablicy,...
Przekazałem już tablicę 10 elemntową do wskaźnika linijka oraz do każdego pola wpisałem tablicę 80 elementową i nie wiem jak dalej .
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...
Dać to się być może da (zależy jaki proc i jaka konfiguracja sprzętowa), ale jakim kosztem. Musiałbyś zrobić sobie coś w rodzaju dynamicznie tworzonej instrukcji, czyli: 1. Tworzysz sobie w pamięci RAM tablicę, a wniej instrukcję rfsl0 i zakańczasz ją ret-em (kopiowanie tablicy, z wartościami kodu) 2. podmieniasz bajt instrukcji decydujący czy to jest...
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ć...
powinienneś dostać 1"L z tego co spojrzałem do tablicy ASCII. A z drugiej strony - jaką długość w bajtach przekazałeś do funkcji a jak długi jest int, bo może tu tkwi błąd. Tzn. 2 czy 4 bajty na inta? Bo o ile wiem to dla ARMa int jest 32bitowy.
..."wskaźnik jest kopią lokalną i jak słusznie zauważyłeś nie mogę sobie do niego przypisać innego adresu (tzn mogę, ale nic to nie zmieni), ale mogę za to dowolnie zmieniać wartości na jakie wskazuje"... Ale mi chodzi o to, żeby funkcja, której parametrem jest tablica bądź tablice NIE ZMIENIAŁA mi bezpośrednio zawartości tablicy zadeklarowanej w funkcji...
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...
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...
To ja bym proponował zmienne: [syntax=cpp]zawodnik* tab[50]; int ski;[/syntax] zadeklarować w funkcji main() i zmienną ski zainicjalizować na 0. A następnie przekazać je jako parametry w funkcji dodaj i wyswietl. Pamiętaj, aby zmienną ski przekazać przez referencję, aby za każdym razem zmieniała swoją wartość;)
Funkcja atoi(). Poczytaj o niej. Jako argument przyjmuje łańcuch znakowy typu C, więc będziesz musiała użyć metody klasy string (nie pamiętam jak ona się nazywa, chyba c_str() ale głowy sobie obciąć nie dam :P poczytaj w dokumentacji) która zwróci Ci tego stringa w postaci tablicy. A funkcja atoi() zwróci Ci przekazaną liczbę w chara'ch jako int. Są...
Ok już mi się trochę cała sytuacja rozjaśniła. Dziękuję bardzo. Mam jeszcze jedno pytanie. Jak w takim razie mam przekazać tablicę do tej klasy. Na pewno nie zadziała zwykłe przekazanie adresu jej początku. Czy moglibyście powiedzieć jak to zrobić?? Bardzo proszę o pomoc
Przed instrukcją return (0); wywołujesz funkcję wypiszwynik bez argumentów a zadeklarowałeś, że ma otrzymać parametr typu struct karta. Gdzieś w programie musisz zadeklarować zmienną struktur typu struct karta wypełnić ją danymi po czym przekazać wskaźnik do niej funkcji wypiszwynik w polu argumentów.
janbernat : ale jaki jest problem z volatile ? register to jest raczej sugestia dla kompilatora. Niemożliwe jest obligatoryjne trzymanie zmiennej w rejestrze. Dlaczego najgorzej jest z interrupt ? Naczytał się kolega stek bzdur i teraz zdaje się mieć wątpliwości co do sensu programowania w C. Zapewniam, że nie jest tak źle. Co do kolejki/buforu cyklicznego/innych...
przekazanie wyniku funkcji przekazanie tablicy przez wskaźnik przekazanie zmiany
zalany katalizator domykanie drzwi płytka stykowa atmega8
piekarnik samsung piekarnik samsung schemat
Instrukcja obsługi klawiatury Kenwood BM 350 Jak zmierzyć rezystancję elektromagnesów?