No niech będzie. void f(int *x) {//funkcja otrzymuje adres i pod ten adres "wpisuje" 12 *x = 12; } int x = 5; f(&x);// & oznacza pobierz adres zmiennej x i przekaż go do funkcji f //x jest = 12 a: void f(int *x) { x[2] = 12; *(x+5) = 15;//równoważny zapis } int x[10]; f(x);...
Wszystkie zmienne automatyczne w funkcjach są niszczone po wyjściu z funkcji. Jeśli chcesz, żeby funkcja tworzyła strukturę i ją jakoś zwróciła, to w C zazwyczaj robi się to brzydko: - strukturę deklaruje (lub alokuje) się na zewnątrz funkcji, a do funkcji podaje wskaźnik do niej, żeby funkcja tę strukturę zainicjalizowała; - na zewnątrz funkcji deklaruje...
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...
Tomqu z podanych przeze mnie linków ściągnij przykład 04 i podmień w nim main.c na: [syntax=c]#include"main.h" //**************************************... #define BUF_SIZE 8 // definiujemy bufor o rozmiarze 8 bajtów (musi byc potega dwójki dla tego sposobu!!!) // definiujemy maskę dla naszego bufora #define BUF_MASK...
Pomysł jest taki: Jedną tablicę przerwania kierują na wyświetlacz Są zadeklarowane tablice i trzeba tylko przepisywać je do tej którą odświeża przerwanie. To co napisałem: [syntax=cpp] char tablica1[10] = {1,2,3,4,5,6,7,8,9,10}; char tablica2[10] = {11,12,13,14,15,16,17,18,19,20}; // tablic będzie sporo char tablica[10]; // ta tablica ma być wizualizowana...
Hasła do google odpowiednio: przekazywanie przez wskaźnik przekazywanie przez referencje zwracanie przez wartość
ja to potem wszystko zrobię ;) tylko robiłem to to po kolei i kompilowałem i napotkałem na to że tak się dzieje ;0 ale musiałem wstawić getchar() gdyż moim zdaniem program za szybko leci i nie moge podać imienia tylko odrazu wiek, więc wstawiłem te getchar(); co poprawić w tym feagmęcie ? ;)
Ale co w przypadku gdy chce przejsc na ekran drugi i zaladowac buttony na pozycjach z tablicy drugiej? Chcialem przekazac jakos elegancko wskaznik tablicy do funkcji button_init. Jeśli indeksy poszczególnych tablic są takie same, a wydaje się, że w twoim przypadku są, to musisz po prostu jako argument zdefioniować tablicę o wskazanej liczbie wymiarów...
Witam. Mam do zrobienia program o treści: Funkcja otrzymuje dwie tablice X,Y o n liczbach i zwraca trzecią tablice Z. Zi=Xi + Yi Niby banalne, a nie umiem zrobić, żeby funkcja zwracała całą tablicę. Funkcja zwraca mi jedynie jej pierwszy element. Tradycyjnie za gotowe rozwiązanie 100pkt. Z góry dzięki :)
Witam wszystkich Elektrodowiczów! Piszę kod programu, w którym mam funkcję, która tworzy pewną tablicę i wpisuje do niej wartości. Jednak potrzebuję, aby ta funkcja zwróciła mi te wartości do drugiej tablicy w programie głównym no i mi nie wychodzi... :cry:. Wygląda to mniej więcej tak: [syntax=c]uint8_t funkcja (uint8_t adres) { uint8_t i = 0; uint8_t...
Czesc Mam taki banalny programik. Wiem że on jest bez sensu ale to tylko tak dla przykładu. Nie potrafię przekazać tablicy "wyraz" do funkcji. Wiecie może dlaczego ??? #include <stdio.h> #include <stdlib.h> int funkcja(char); int main(int argc, char *argv[]) { char wyraz[3]={'a','b','c'}... int...
Witam Mam za zadanie posortować macierz 10x10, wiem jak sortować tylko nie mam pojęcia w jaki sposób zapisać to sortowanie w formie funkcji, mam problem przy przekazywaniu argumentu do funkcji jako tablicy dwu wymiarowej, dziwi mnie fakt że w tak napisanym kodzie jak poniżej dochodzi do zmiany wartości w tablicy która jest przekazywana jako argument...
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! Otóz dopiero zaczynam przygode z f-cjam wiec prosze o wyrozumiałość Program ma wyswietlac po prostu zadeklarowana tablice przy uzyciu f-cji #include<stdio.h> void wysw(int[]); /*****************/ main() { int i,x,n; const int MAX=20; int tab[MAX]; printf("Podaj rozmiar tablicy: ");...
Witam, Zwracam się do was z 2 pytaniami: 1. Musiałem stworzyć własna tablicę znaków i zrobiłem to w ten oto sposób: [syntax=c]... #define _A"\x0B" #define _B"\x0C" #define _C"\x0D" #define _D"\x0E" #define _E"\x0F" #define _F"\x10" ... Print_s( 55, 72, _M _I _N _U _T _Y );[/syntax] I w ten sposób mogę do funkcji przekazać ciąg znaków. Ale pojawiła się...
Witam! Przekazywanie tablic w języku "C" odbywa się tylko poprzez wskaźniki tak więc nie mogą być stosowane jako parametry funkcji i wartości zwracane przez funkcje (mam na myśli tablice sensu stricte) ale można zastosować pewne obejście wykorzystując możliwość użycia jako parametrów funkcji jak też wartości zwracanych przez nie zmiennych typu struct....
Rozmiar stosu można zwiększyć, jednakże jego zbyt duże wykorzystywanie wskazuje na złą gospodarkę stosem... Należy wyjść od sytuacji, w których dane są odkładane na stos, a są to: - Wywołanie funkcji - Przekazanie ponad 3 (lub 4 w zależności od kompilatora) parametrów do funkcji o długości do 32bitów (lub 16, jeśli kompilator 16-bitowy). - zwracanie...
Źle przekazujesz Id do funkcji, mały przykład do uruchomienia w symulatorze: [syntax=basic4gl]$regfile = "m88pdef.dat" $crystal = 20000000 $baud = 19200 $hwstack = 64 $swstack = 64 $framesize = 64 Dim Tablica(4) As Byte , Tekst As String * 12 Declare Function Test_funkcji(byref Osa As Byte) As String * 6 Tablica(1) = 10 Tablica(2) = 20 Tablica(3) =...
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,
Dokładnie tak. Inny sposób, można jeszcze użyć zmiennych zewnętrznych ale to trzeba robić świadomie (są pewne pułapki). Język C++ dysponuje jeszcze mechanizmem referencji ale to prawie to samo co przekazywanie poprzez wskaźniki. Jeśli przekazuje się do funkcji tablicę jako całość, to automatycznie jest przekazywana jako wskaźnik do pierwszego elementu.
Wprzypadku sortowania [i]in situ[/b] nie zwraca się nic, gdyż wymagałoby to stworzenia kopii tablicy. Przekazujesz wskaźnik, więc funkcja pracuje na tym samym obszarze pamięci.
W symulatorze działa. Albert
Być może nie musisz przekazywać parametrów size1 i size2 - w Javie wielkość tablicy można z niej odczytać, w C nie ma takiej możliwości, więc trzeba przekazywać dodatkowy parametr. Oczywiście tylko jeśli w funkcji używasz całej tablicy.
Mam wskaźniki zdefiniowane w następujący sposób: [syntax=c]float (*A_ES1)[6][6] = (float (*)[6][6]) 0x0C200000; float (*B_ES1)[6] = (float (*)[6]) 0x0C200300;[/syntax] Mogę normalnie operować na pamięci na którą te wskaźniki wskazują. Przykład: [syntax=c](*B_ES1)[0] = 3.45; (*A_ES1)[0][0] = -9.78;[/syntax] Pozostaje pytanie jak przekazać to do funkcji...
Witam, Abstrahując od układu odniesienia - ponieważ nie dostarczyłeś kodu owej funkcji do której przekazujesz te tablice. To cytuję: "Nie rozumiem tylko dlaczego gdy wrzucam do tej funkcji tablicę tab[8], której wartościami są powyższe tablice, program działa również dobrze i wyświetla mi po jednej diodzie w odstępach np. 100ms. Przecież funkcja sprawdza...
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...
Przekazujesz liczbę z tablicy, a argument funkcji na 99.9% jest wskaźnikiem i drugie tyle procent koniec wysyłania musi być zakończonym znakiem terminatora '\0', bo tego na pewno wymaga ta funkcja. [syntax=c]char buf[2] = {'\0'}; buf[0] = tab1[2]; lcd_str(buf); [/syntax]
Magiczne słowo static daje dokładnie to samo co zmienna globalna. Przekazywanie wyniku przez zmienne globalne owszem jest w niektórych przypadkach dobre lub jedyne możliwe (z przerwania do kodu), ale pomiędzy funkcjami - nigdy. Przyjmijmy, że mamy n funkcji, każda może zwrócić tablicę o rozmiarze m. Jeśli każda funkcja przydzieli sobie tą tablicę mającą...
Przy kompilacji tego programu nie masz żadnych ostrzeżeń? Dziwne. W każdym razie jeśli odebrane_dane są typu tablicowego, a funkcja USART_Transmit (char data) przyjmuje jako argument typ char, który w żaden sposób z tablicą jest niekompatybilny to masz problem. Najpewniej kompilator generuje co najmniej ostrzeżenie w tym momencie, bo to co robisz to...
To ja bym proponował przeczytać: [url=http://cpp0x.pl/kursy/Kurs-C++/Pozi... - pierwsze starcie [url=http://cpp0x.pl/kursy/Kurs-C++/Pozi... tablic jednowymiarowych do funkcji
Kompilator mówi wprost: test.c: In function ‘main’: test.c:11: warning: initialization from incompatible pointer type test.c:17: warning: passing argument 1 of ‘pobierz’ from incompatible pointer type Chyba sam widzisz, że int (*wsk) cdecl> explain int (*wsk)[2] declare wsk as...
Witam, Skoro ta tablica jest tworzona dynamicznie to ta `10`-tka: _table=(unsigned char*)calloc( 10 ,sizeof(unsigned char)); będzie jakąś zmienną, co za tym idzie nie ma potrzeby dodatkowego pozyskiwania rozmiarów tej tablicy, wystarczy "nie zgubić" tej zmiennej tylko przekazywać ją razem ze wskaźnikiem do zaalokowanej pamięci, dla wygody można całość...
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]
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...
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...
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...
pomysl 1. przekazywac do funkcji wskazniki do a i b pomysl 2. przechowywac a i b w tablicy dwuelementowej i zwracac wskaznik do niej :P
Niby dobrze jest zrobione tylko: (kopiowanie tych tablic) jest to sensowne czy może jest jakiś lepszy sposób na zrobienie tego Hm... Może i gdzieś jest sensowne ale masz fajny szablon klasy vector z biblioteki STL. Można to nazwać inteligentną tablicą, rozszerzasz tablicę wtedy kiedy chcesz na przykład: [syntax=cpp]#include <iostream> #include...
Twoja funkcja musi pobierac wskaznik do struktury GPS. Przykładowo jesli struktora nazywa się strukturaGPS: typedef struct{ int wysokosc; int szerokosc; int czas int packet3[8]; }strukturaGPS; //za jej pomocą tworzysz strukturę GPS: strukturaGPS GPS; //Funkcja bedzie wyglądała tak: void gps_dm_dms(strukturaGPS* GPSpointer...
(at)strikexp Możesz też zdefiniować jako argument funkcji tablicę. Przewaga jest taka, że kompilator ma szansę sprawdzić wtedy czy nie wychodzisz poza indeks. Przekazywanie wskaźnika na tablicę może rodzić problemy - jeśli potem zmodyfikujesz tablicę, to trzeba będzie przejrzeć wszystkie funkcje, które się do niej odnoszą. Uprzedzając pytanie - tablice...
Kompilator w funkcji która wywołuje funkcję LCD_WriteText rezerwuje na stosie miejsce dla tej tablicy i przekazuje wskaźnik do tej tablicy funkcji itoa. Dopiero po wyjściu z tej funkcji obszar pamięci przeznaczony dla tej tablicy zostaje zwolniony na stosie.
Nie wiem co chcesz osiągnąć, przykro mi nie wiem z jakiej biblioteki korzystasz, co ona robi pod spodem itp. Ale jeśli ma deklarację jak powyżej to możesz zrobić coś takiego char string[20] = "ucze sie"; co oznacza że wypełniasz tablice "string" znakami "ucze sie" + znak końca łańcucha 0 przekazując etykietę tablicy do funkcji przekazujesz adres na...
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.
Ściślej - w PHP tablice wielowymiarowe są zawsze tablicami tablic, dlatego wszelkie funkcje operujące na tablicach operują wyłącznie na jednym wymiarze. Chyba, że mi coś umknęło teraz... Jeśli chce się dokonywać manipulacji w danym wierszu (kolumnie - zależnie od interpretacji), to przekazuje się $tablica który to zapis dalej jest tablicą :)
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]...
Tutaj nsvinc ma całkowitą rację, technicznie do funkcji przekazywany jest wskaźnik wskazujący na obszar pamięci zawierający tablicę, więc jest to klasyczne odwołanie przez referencję, tyle, że implicite, bo do funkcji jest przekazywany przez wartość wskaźnik do tablicy, który funkcja może modyfikować, a że wskazuje on na obszar pamięci zajmowany przez...
Zrób sobie tablicę int czy byte o n elementach gdzie sobie wpiszesz nazwy pinów. Możesz założyć n=2. Zrób funkcję która zeruje 0 /zaświeca 1/zmienia stan 2 wszystkie ledy zgodnie z tablicą void nazwaDlaWieluPinowWpisanychDoJednejTabli... nowyStanPinu,int nazwaTejTablicy[], int iloscElementowTablicy)). Jak będziesz chciał zmienić stan wszystkich pinów...
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 ;)
a skąd moja biblioteka ma wiedzieć co to jest PINB i PORTB?;) Wskaźnik przekazuje się z zewnątrz, biblioteka nic nie wie co to jest PINB i PORTB. Biblioteka ma w tym przypadku dostęp tylko do wskaźników wskazujących na coś, akurat to my zakładamy, że to coś wskazuje na PINx lub PORTx. Co do uniezależnienia się od io.h: A skąd wtedy program ma wiedzieć...
Przekombinowane i źle zrobione. Doczytaj wiadomości o wskaźnikach. tab1 = tab2 jest niemożliwe do wykonania. Zresztą po tym co napisałeś widać, że nie masz pojęcia czym jest wskaźnik i jak funkcjonuje. A jeśli w rożnych momentach programu chcesz wykorzystywać różne tablice przekazuj funkcji wskaźnik do danej tablicy. Jeśli nie chcesz robić tego jako...
proponuje urzyc referencji void funkcja(int &x) { x=10; } main() { int x=20; funkcja(x); printf(x); return 0; } w wyniku uzyskasz 10 oczywiscie mozesz dac w prarametrze cala tablice
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...
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,...
Tak. Ale co chcesz przekazywać w parametrze w takim układzie, jak obecnie? Zwróć uwagę, że wynikiem funkcji jest znak, a nie tablica znaków. Ponadto ten wynik bezpośrednio przekazujesz do strumienia wyjściowego, więc co po t?
Ta funkcja nic nie zmieni, bo parametry przekazujesz przez wartość. Jeśli chodzi o podmianę dla tablicy rekordów, to zasadniczo się tego nie zrobi. Jeśli tablica klas, to można podmieniać elementy w taki sposób (ale elementy, nie całą tablicę!). Jeśli chcesz całą tablicę podmienić - zrób z niej tablicę dynamiczną lub operuj na wskaźnikach do niej. type...
Witam! W kodzie widze, ze masz troche pomieszane C z C++, ale takie jest moje skromne zdanie i moge sie mylic. Pozatym nie wiem czy to wstepnie tak napisales zeby doprowadzic program do uzywalnosci ale macierze sie mnozy troche inaczej, polecam poczytac na ten temat: http://www.dimmension3.spine.pl/download... Co do samego...
Bootloader u mniej odpowiedzialny jest jedynie za wymianę właściwej aplikacji. Ma on tylko jedną funkcję widzianą na zewnątrz umieszczoną pod stały adresem w zarezerwowanej części Flash. Poprzednia aplikacja musi pobrać nowy firmware i wywołać tą funkcję. Jako jej parametr przekazuję tablicę wskaźników do funkcji jakie kompilator umieścił w pamięci...
przekazywanie tablic przekazywanie string funkcji przekazywanie wyniku funkcji
chłodzenie wzmacniacza samochodowego bojler licznik dwutaryfowy grzeje kondensator przetwornicy
kamera aqara taraban dmp502 przestrojenie
Odkurzacz Flex S47 - cykanie mikroprzekaźnika Brak dźwięku w radiu Porsche Cayenne - diagnostyka