W nawiązaniu do porad kolegi tmf proponowałbym coś w tym stylu (być może strach przed kwalifikatorem __flash wynika z braku przykładów kodu :?: : [syntax=c] // przykład jak używać kwalifikatora __flash do umieszczania // danych w pamięci programu i jak się do nich odwoływać // kod gotowy do odpalenia w symulatorze Atmel Studio 6 // można zaobserwować...
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...
Ź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) =...
C18 czy CX8?
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...
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.
Hasła do google odpowiednio: przekazywanie przez wskaźnik przekazywanie przez referencje zwracanie przez wartość
Witam forumowiczy ;) mam problem z programem:/ a mianowicie chodzi o to że nie mam pojęcia jak przesłać tablicę struktur do funkcji tak aby można było w funkcji modyfikować tą tablicę (przekazywanie przez zmienną). Chcę zrobić bazę danych i muszę w funkcji dodaj(); dodawać nowe osoby a nie wiem jak to się robi w języku C. w C++ wiem jak to zrobić ale...
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
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...
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 ;)
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...
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ą...
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...
(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...
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...
Deklaruję sobie funkcję w ten sposób: void funkcja (uint8_t tablica[6]); Gdy wywołuje ją: uint8_t tablica[] = {0,1,2,3,4,5}; funkcja (tablica); Wszystko jest ok. Jak jednak wywołać ta funkcję, żeby nie deklarowac za każdym razem tablicy. Chodzi mi o coś w stylu funkcja ({0,1,2,3,4,5});
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
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...
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...
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...
OK dzięki to już mi uświadomiłeś. No rzeczywiście można było po tych linkach dojść do wniosków jeśli chodzi o tablice, ale jak od niedawna się programuje i widzi się znaczki * to nic nie jest oczywiste.:) Czyli stąd wniosek, że jeśli chodzi o tablice dynamicznie deklarowane bądź nie (obojętne) to nie da rady tak zdefiniować prototypu funkcji, aby zmiana...
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,
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.
Uwagi? Przekazywanie tablicy w ten sposób = rozrzutne gospodarowanie stosem (czyli wielki błąd).
A co to za "twór"? Tablice przekazujemy w C przez wskaźnik do niej (nazwę tablicy), a Ty nie dość, że chcesz przekazać przez wartość, to jeszcze robisz to w DEFINICJI FUNKCJI? Pokaż wywołanie tej funkcji (writejpegfile) z funkcji "main". ------------ Jeśli w main masz tą tablice zdefiniowaną jako: data1 data1 [] w funkcji writejpegfile - to wskaźnik...
Dokładnie. Napisz w jakim elemencie masz problem, co chcesz uprościć i dlaczego - w końcu to Twój kod więc wiesz gdzie masz elementy które nie wiesz jak inaczej napisać. Pierwsze sugestie : 1 Podziel to na pliki 2 Podziel to na warstwy w imię SRP 3 Refaktoryzacja żeby zachować DRY 4 Usuń potworki styli bool shoot_enemy(char tab[][11],...
Ile przydzieliłeś dla tmp? Co jest w tablicy dzmi[mon]? Wyświetl path na lcd czy niema więcej niż 10 znaków. Pokaż więcej kodu.
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ć...
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...
Może od d.. strony do autora postu. Co by się stało gdyby (tak jak się upierasz w przekazywaniu przez wartość, czyli przekazywaniu lokalnej kopi tablicy) mając do dyspozycji w procku np. 2KB RAM przekazałbyś tablicę o rozmiarze np. 1,5 KB ? Twój progam poszedłby natychmiast w krzaki z racji braku pamięci RAM więc przekazywanie przez adres jest metodą...
Ale czemu nie widzą deklaracji? Chcąc na niej operować, to tą deklarację trzeba im udostępnić. Wówczas wg nazwy możesz w parametrach przekazywać poszczególne elementy tablicy tej struktury bez udostępniania całej tablicy jako takiej. Jeśli jednak chciałbyś np. udostępnić w trybie tylko do odczytu jakiś element, to już bez obiektowości niewygodnie to...
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.
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...
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...
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
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...
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.
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...
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]
Hehe. Ale się wątek rozwinął :D Zastanawia mnie tylko to: masz tablicę wskaźników na funkcje przyjmujące jako argumenty 3 parametry. Nawet jeśli kompilator je zoptymalizuje to musi zrobić to w taki sposób, aby ich wywołanie było kompatybilne ze zdefiniowanym wskaźnikiem na funkcje. bo skąd kompilator ma wiedzieć które funkcje będę wywoływał skoro wywołuję...
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....
Faktycznie :) Próbowałem ze wskaźnikami, ale nie przez przekazywanie. Faktycznie, tak najlepiej i najszybciej. Ten zapis tablicy i wyświetlania znaków rozgryzłem już. Faktycznie ten Niemiec pomieszał strasznie, ale za to jest bardzo oszczędna ta tablica. Ona ma jeszcze symbole, łącznie ma 224znaki i zajmuje 1074 bajty, czcionka o wysokości 8pix, szerokość...
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.
Dodatkowo, zdecyduj się, czy tablicę ByteOutput przydzielasz w funkcji wołającej i przekazujesz do rc4() (lepsze rozwiązanie), czy przydzielasz wewnatrz rc4() i zwracasz przez wskaźnik. Obecnie (z zakomentowaną funkcja malloc) wskaźnik temp pokazuje w krzaki (nie jest mu nadawana wartość początkowa), więc odwołania do niego z dużym prawdopodobieństwem...
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...
Jak to, nie możesz zadeklarować? Jedynym sposobem w C na problem "buffer overflow" jest przekazywanie zawsze rozmiaru wraz ze wskaźnikiem na bufor/tablicę. Wskaźnik przekazuje tylko adres zmiennej. Z samego adresu nie da się wywnioskować, ile jest pamięci dostępnej pod tym adresem. sizeof() działa na typie danych, tzn. tylko zwraca informacje ile miejsca...
Zamieniaj " na encję " W ogóle to najlepiej użyj funkcji kodującej encje. Ponadto pamiętaj, aby wartość samego parametru value była objęta w pojedynczy lub podwójny cudzysłów. Tak na marginesie - niepoprawnie zapisujesz użycie zmiennej tablicowej jak również niepoprawnie zapisujesz nazwę klucza tablicy asocjacyjnej. Winno być: echo "{$r
No tak ale jeśli tworzę wskażnik char *ptr, czyli powienien wskazywać na daną w pamięci RAM a przekazuję do niego wskazanie na dana która ma sie znajdować w pamięci Flash. CZyżby to znaczyło że nie ma znaczenia czy do wskażnika zapiszę adres pamięci flash a RAM. Przecież prog_char *ptr to nie jest to samo co char *ptr . Jeden wskażnik powienien wskazywać...
Witam! Natknąłem się w swojej przygodzie z programowaniem na następujący problem. Otóż jedną z funkcji wykonywanych przez procek ma być sterowanie fazowe obrotami dmuchawy. Udało się uzyskać za pomocą przerwań i timera zmienne opóźnienie w odpowiedzi na detekcję zera. Jako że wystarczy kilka stopni regulacji, zrobiłem to tak, że wartości bardziej znaczącego...
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...
Przyznam rację: bascom jest dobry, ale do PROSTYCH PROGRAMÓW... a do prostych nie nalezy pisanie czegos w rodzaju sprzętowej bazy danych na AVRa. Bascom generuje POWOLNY kod, to jest FAKT. I oblusuje TYLKO 5 poziomów zagnieżdzenia ifów. To tez jest fakt. I TRAGICZNIE rozwiązane przekazywanie parametrów do funkcji? Gdzie w bascomie są WSKAŹNIKI? gdzie...
Na moim poziomie wiedzy jedyne zastosowanie to przekazywanie przez wskaźniki adresów zmiennych, a nie robienie kopi zmiennych podczas wykonywania funkcji. Z grubsza rzecz ujmując o to chodzi. Jak przy tablicy 4-elementowej wydaje się to fanaberią to przy większych i bardziej złożonych konstrukcjach wskaźniki ratują życie. Oczywiście przykłady z książek...
Tak, to dobra uwaga, ale problem pozostał i zdarza się gdy np zrobię tak: api.c: while(1) { (void) get_buffer(&frame_start); (void) modyfikuje(&frame_start); (void) oddaje(frame_start); tab[2]=10; tab[3]=15; } Dopóki program nie dojdzie do linii zmiany danych w tablicy...
Ok, kolejny problem. Gdy w funkcji main() deklaruje tablice char*tab i zmieniam jej rozmiar w innej funkcji, do której przekazuje tą tablice, przy użyciu tab = new char[rozmiar] to ta tablica nie jest już "widziana" w kolejnej funkcji wywoływanej zaraz po tej w której zmieniam rozmiar. Co w tym zrobić?
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?
int *funkcja(int par1, int par2, int par3,int par4,int par5) { int wynik[2]; // jakieś tam obliczenia na przesłanych danych wynik[0]=2; wynik[1]=11; return wynik; } Na przyszkość: Zdecydowanie odradzam tego typu praktyki - tablica jest tworzona na stosie, z funkcji zwracasz wskaźnik, jeszcze poprawny, ale w...
Dziękuję za odpowiedzi, nie wszystko jest jeszcze dla mnie jasne, ale chyba zaczynam rozumieć zagadnienie. Proszę rzucić okiem na ten przykład i na jego podstawie określić czy "załapałem" czy może jednak nie do końca: -------------------------------- get_data(int a , void(*wskaznik)(void)... { (...); wskaznik();...
jeśli wyraz 'wskaznik' jest identyfikatorem tablicy to ampersand przed nim jest zbędny (w ten sposób do funkcji przekazujesz adres wskaźnika a nie tablicy). Możesz też napisać MojaFunkcja(&wskaznik[16])
Witam, głowię się dłuższy czas jak poruszać się jednym wskaźnikiem po tablicy dwuwymiarowej. int **wsk, tab[10][10]; wsk = (int**)tab; // wsk = tab nie przechodzi, nie wiem czemu tab[0][0] = 5; tab[0][1] = 7; tab[1][0] = 9; printf("%d, %d", *wsk, *(wsk+1));...
Poczytaj o przekazywaniu tablic jako argumentów funkcji w C++... na razie masz komunikat, że nie ma definicji funkcji która by obsłużyła argumenty jak w wywołaniu. http://www.cplusplus.com/doc/tutorial/ar... https://www.tutorialspoint.com/cplusplus... + https://www.tutorialspoint.com/cplusplus...
Nie chodzi o jakiekolwiek metody logowania bez znajomości danych. Potrzebuję napisać kawałek "softu", który będzie provisionować telefony IP, a jako że jedne mają możliwość ustawienia 1 linni inne 2,4 i więcej to w templacie muszę zawrzeć coś co będzie wiedziało, że dany blok z szablonu ma zostać powtórzony więcej niż raz. Na ten moment problem wydaje...
Poniżej przykład jak w Twoim kodzie można przekazać tablice do funkcji. Podałeś, w mojej opinii RZEKOME rozwiązanie problemu (na pewnym poziomie prawidłowe) , jest jakieś cięcie między funkcjami, i nic nie jest przez to prostsze, klarowniejsze, bardziej odporne na zmiany (co, gdy o graczu będzie imię?). Od tablic są zależności (dependencies) w dwóch...
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...
Niedawno "liznąłem" Rust w kontekście aplikacji konsolowych i WebAssembly, a przy tym mam duże doświadczenie w C++, dużo czytałem o zaletach Rust. W moim odczuciu WebAssembly bardziej przypomina tworzenie systemu wbudowanego niż programu na komputer, bo mikrokontroler "otacza się" różnymi układami i urządzeniami wybranymi w zależności od potrzeb, tak...
To znaczy z czym się pogubiłeś? Błędnie deklarujesz tablicę. Gdzie masz miejsce na znak końca tekstu? Błędnie wpisujesz do niej wartość. Proponuję poczytać o wskaźnikach i przekazywaniu tablic do funkcji. A tu wklejam nieco podobny algorytm ;) [syntax=c] #include <stdio.h> #include <stdlib.h> #include <string.h> #define PIN_LENGTH4...
Nie pytaj o poprawna deklarację bo nie przekazuje się parametru funkcji jako tablicy. Bzdura! 4\/3!!
Zastanów się, czy liczby wejściowe mogą być ujemne i jak to wtedy będzie działać... Twoje funkcje zwracają pojedyńczy znak, a chciałbyś zwrócić tablicę znaków. Niestety w C funkcja nie może zwrócić tablicy. Albo zastosuj zmienną globalną, albo przekazuj tablicę wynikową do funkcji, np tak: char* odejmowanie(char odjemna[], char odjemnik[],...
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ść...
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...
Witam, W jaki sposób w CODESYS (w ST)do argumentu funkcji przekazać tablicę, a raczej jej adres pierwszego elementu. Tz chodzi mi tylko o to co mam zadeklarować w zmiennych wejściowych funkcji jeśli mam zamiar przekazywać jej tablicę Np mam tablicę: zm1 : ARRAY[0..13] OF BYTE; Więc na wejście funkcji będę podawał ADR(zm1) ...
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...
Dziala :P po zmianie word na longword. Zmiana (at)tablica na (at)tablica[0] nic nie zmienia. Zreszta czy przekazujac wskaznik do innej funkcji nie przekazuje zawsze adresu, pod ktorym znajduje sie pierwszy element tablicy (o ile nie wskaze innego)?
hint 1: Tablice do funkcji zwykle przekazuje sie (ze wzgledu na ich wielkosc) przez wskaznik (operujesz na oryginale nie na kopii). hint 2: W C nazwa tablicy jest adresem jej pierwszego elementu.
Zamiast: procedure dodaj(var ile:integer; t:tablica); powinno być: procedure dodaj(var ile:integer; var t:tablica); Zjadłeś "var" przez co podawane wartości tablicy pozostają w procedurze. Żeby Ci nie pogmatwać: masz przekazywanie zmiennej przez wartość zamiast przez nazwę. P.S. 1.5 godziny przy programowaniu to bardzo niewiele, zwykle robi się to godzinami...
Ja nie wiem co tu kogo dziwi. Tablicę do której formatujesz dane masz na stosie w przerwaniu. Tablicę tą przekazujesz do nieblokującej funkcji, która rozpoczyna transfer przez UART. Następnie wychodzisz z przerwania, tablica przestaje istnieć, a UART sobie dalej z niej odczytuje dane... Dodano po 30 Nie wiemy nic o typie uC. Jeśli nie jest to Cortex-M4,...
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
Hej! Wiem, że 's' źle pokazuje, bo drukuję sobie jego wartość po wejściu do funkcji. Problem zaczął się wyjaśniać. Zauważyłem, że wartość tego wskaźnika w funkcji jest przesunięciem poprawnej wartości... Jakbym to już gdzieś widział.... Otóż adres tablicy, którą przekazywałem do funkcji nie był podzielny przez 4. Dlaczego? Tablica umieszczona była na...
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]
Według mnie nie możesz ze względu na ograniczenia języka przekazując do funkcji tablicę sprawdzić jej rozmiar. Tak na prawdę, nie przekazujesz tablicy, a jedynie wskaźnik na nią - w tym wypadku ma on strukturę *(*(Tablica)+2) (na 98% jestem tego pewien) dlatego rozmiar tablicy to tak na prawdę jest rozmiar wskaźnika na nią. Możesz co najwyżej spróbować,...
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]...
Witam! Może tak: Zdefiniuj typ struturowy np tak: [syntax=c]typedef struct { double m[2][2]; } H;[/syntax]Zastosowałem tę sztuczkę dlatego, że typy strukturowe we współczesnych kompilatorach można przekazywać bezpośrednio jako parametry wywołania jak też funkcja może zwrócić bezposrednio w odróżnieniu od tablic, które można przekazywać tylko przez wskaźniki....
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...
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:...
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.
signed long int jest dlatego żeby zwolnić powtarzanie pętli W jakis posob zwolnic? Czy masz na mysli to ze zmienna ma wiekszy zakres i mozna ja wiecej razy inkrementowac? Czy moze procesor nie radzi sobie z liczbami typu signed i spowolnia swoja prace (chyba jakis hack) :)? równie dobrze mogło by być unsigned short int albo int. To jest tylko po to...
Dzięki serdeczne za odpowiedz!!! Problem polega na tym że poprawne dane (te które przeszły CRC) muszą trafiać do jakiegoś bufora... następnie mając całą poprawną ramkę w buforze chciałbym po rozpoznaniu funkcji (odczytanie która to funkcja to banał wystarczy odczytać ramka[2] i porównać ze wcześniej zdefiniowanymi stałymi) WYŁUSKAĆ z pola "DANE" odpowiednie...
Witam, piszę w tym temacie, ponieważ mam podobny problem. Napisałem funkcję liczącą wyznacznik macierzy n-wymiarowej, jednak wyrzuca mi ona niesamowite liczby (typu -124134235) dla macierzy większych niż 2-wymiarowych o elementach ~4 (czyli absurd). Znalazłem ten temat i wydaje mi się, że schemat jest taki sam jak w kodzie powyżej z pascala. Jeśli ktoś...
Przekazuj wskaźnik, a tablicę zrób statyczną
Po pierwsze, średnią liczysz dla jednego wektora na raz czy traktując oba jako jeden zbiór? Po drugie, float k jest ci zbędna. Co jest potrzebne to int n podający rozmiar tablicy zawierającej dane (do funkcji jest przekazywany wskaźnik, nie cała tablica) Po trzecie, średnią geometryczną otrzymasz formułą: \sqrt gdzie i to iterator w pętli, w to element...
Możesz zmienną Tablica Używanie zmiennych globalnych jest bardzo nieeleganckie i może prowadzić do trudnych do wykrycia błędów podczas runtime'u. (at)Kubbaz: 1. return Tablica[100] zwraca Ci nie tablice tylko jedna wartość, na dodatek poza zakresem. 2. po co zerujesz tablicę, a potem przypisujesz do niech wartości? Zerowanie jest bez sensu. 3. Adres...
Ale to w końcu masz stworzyć tablicę jednowymiarową zawierającą funkcje (jak napisałeś w 1 poście) czy funkcje działające na tablicach jednowymiarowych (jak to jest w przedstawionym przez Ciebie programie)? A co do błędu to napisz jaki błąd zgłasza kompilator, choć wydaje mi się że brakuje deklaracji typu drugiej zmiennej przekazywanej do funkcji reverseT.
a zmieniłes w kazdej deklaracji funkcji argumenty jakie mająbyć przekazywane (teraz musi byc tablica dwuwymiarowa przekazywana, anie jedno...)
już przy wpisywaniu można sprwdzać max i min bez dodatkowych pętli po tabeli Mam trochę inny pomysł ale dzięki za poradę. P.S. dużo jeszcze tego WIT ci zostało ? Ja dopiero zacząłem... pierwszy roczek :-) No od października już drugi... Ponieważ jednak kolega bbxb z tego co się domyślam piszę to na jakieś zaliczenie ( oczywiście moge sie mylić ) Piszę...
fajny pomysł jak na pierwszy program. ale i tak warto było przejść przez jakiś kurs C++. funkcje mogą zwracać wartość. [syntax=cpp]int* Suma(int* A, int* B, int n) {//ten int* przed nazwa funkcji oznacza typ zwracany. gwiazda nie jest tyle co modyfikatorem inta, co calkowicie innym typem zmiennych, oznacza wskaznik(poczytaj sobie o tym) int* C = new...
Chodzi mi konkretnie o użycie szablonów. To, że można to obejść i zrobić zupełnie inaczej to ja wiem, ale nie jest to to samo. Wyobraź sobie, że chcę stworzyć klasę szablonową, która by określała jakieś okienko dialogowe. Taki szablon mógłbym modyfikować według potrzeb właśnie przez parametry szablonu. Nie chcę używać metod wirtualnych i dziedziczenia...
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...
Cześć, mam problem w przekazaniu i odwoływaniu się do tablicy wskaźników. W main'ie deklaruje tablice 50 wskaźników na strukturę "Step".Następnie chce wywołać funkcje która ma zaalokować pamięć na strukture uzupełnić ją i wpisać jej wskaźnik do tablicy wskaźników new, robię to tak [syntax=c] typedef struct{ uint32_t x; uint32_t y; uint32_t speed; uint32_t...
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.
przekazywanie tablic przekazywanie parametrów funkcji przekazywanie wyniku funkcji
opalarka grzeje wyciąć otwór szkło otwieranie centralnego zamka awaryjne
zanussi tt150 antena kierunkowa dookólna
Prawidłowe wartości MAF w silniku 3.0 TDI VW 2017 Dekoder Manta DVBT018 nie działa - diagnostyka i rozwiązania