Tablice dwuwymiarowe to tablice wskaźników na tablice wartości. Podajesz jedną współrzędną dwuwymiarowej tablicy tabxyz tabzyx[i][j]
To, jak są rozmieszczane tablice w pamięci definiuje standard ANSI C (K&R) http://obrazki.elektroda.pl/8928854600_1... Kompilatorowi wręcz nie wolno inaczej . A co do wskaźników - w K&R2 jest jasno i prosto opisane, jak działają, do czego służą, i co robią...
... czy da sie to zrobić jakoś wydajniej? Bo w tym przypadku dla każdej ikony tworzę oddzielna funkcję, która różni się tylko tablicą. Napisz jedną funkcję do wyświetlania z parametrami. Funkcję tę uruchom z RAM'u. Kompilator i tak rozmieści "liniowo" tę dwuwymiarową tablicę więc możesz używać wskaźnika zrzutowanego na "u16". Jakbyś nie zrobił (wskaźniki...
#include <iostream> #include <stdlib.h> //--------------------------------------... using namespace std; // Deklaracja zmiennych int rzedow; int wiersz[ 34]; int main(int argc, char* argv[]) { cout << "Ile rzedow ?" << endl; cin >> rzedow; cout << endl;...
Witam. Jak utworzyć wskaźnik aby pokazywał na dwuwymiarową tablicę komponentów?
Cześć. Jak w temacie mam problem z przekazaniem wskaźnika do tablicy dwuwymiarowej. Najchętniej zrobiłbym tablice dynamiczną calloc'kiem (od razu by mi ją wyzerował), ale niestety gcc (code::blocks + mingw) ciągle wywala mi błąd związany z tą nieszczęsna tablicą. Pomożecie mi? Dodano po 1 Ok. Sam się domyśliłem co nie tak z kodem. Wygląda na to, że...
czemu nie jest to rownowazne jesli napisze: test.setAll( &testArray ); Mozesz tak napisac.Malo tego mozesz nawet napisac test.setAll( testArray ); a zeby tego bylo malo nawet test.setAll( *testArray ); Zabawne czyz nie ? :D Dostaniesz co prawda warningi ale jesli z-cast-ujesz to na (float*) wszystko bedzie ok. Jest to klasyczny...
...i tak i nie. W przypadku tablicy jednowymiarowej adres tablicy jest wskaźnikiem jej pierwszego elementu, czyli jeśli jest to tablica int, to jest to wskaźnik na int. W przypadku tablicy dwuwymiarowej, czyli tablicy tablic, też jest to wskaźnik jej pierwszego elementu, tyle że tym razem pierwszym elementem jest... tablica, a nie wartość. Czyli jest...
Witam! Kłaniaja sie wskaźniki do tablic! Mówiąc szczegółowo: chcesz inicjować tablice dwuwymiarowe; w związku z tym inicjujesz tablicę wskaźników do tablic n-wymiarowych, którym też musisz przydzielić pamięć! Zdrowych i wesołych świąt! KG
Zauważ, że tablica to tak naprawdę wskaźnik, tablica dwuwymiarowa to wskaźnik na wskaźnik, 3-wymiarowa to wskaźnik na wskaźnik na wskaźnik itd. Stąd do elementów: [syntax=c]int a[10][10];[/syntax] można się odwoływać np. tak: [syntax=c]int *x=&a[1][0];[/syntax] x będzie wskaźnikiem, który można normalnie indeksować (x[0], x[1]), w efekcie odwołując...
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...
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));...
Tak nie. To ma być albo tablica dwuwymiarowa, albo tablica wskaźników na tablice. Jak to zadeklarować to już sobie poszukaj. Tutaj naprowadzamy a nie zastępujemy podręczniki lub wujka Gugla. Warto też przed wysłaniem posta SPRÓBOWAĆ. Pozdrawiam
Wskaźnik nie wskazuje na samego siebie, nie ma nawet takiej możliwości. Nazwa tablicy to wskaźnik na początek tablicy. *tab to w tym przypadku wskaźnik na pierwszy wiersz tablicy, *tab = tab[0]. Dopiero dwie gwiazdki zwracają właściwą wartość z tablicy, czyli tab[0][0]. Jakbyś zrobił coś takiego: *((int*)tab), to byś dostał od razu wartość tab[0][0],...
Zasadniczo po pierwsze, do funkcji można przekazywać nie tylko wskaźniki, ale i tablice: void func(uint8_t array[][6]) { ... } Podobnie jak przy deklaracji samej tablicy - można pominąć "skrajnie lewy" wymiar. Spróbuj czy takie coś by nie działało jeśli dodasz atrybut PROGMEM do tego parametru. Po drugie zaś - parametr PROGMEM musisz podać również do...
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,...
Niestety, ale jeśli chcesz tablicę wskaźników, przy czym wskaźniki wskazują na konkretne bloki pamięci, musisz je inicjalizować. Jeśli obie tablice są globalne, to bez problemu powinno dać się to zrealizować jakoś tak: [syntax=C]static char buff0[5][20]; char *menu_main[5] = { buff0[0], buff0[1], buff0[2], buff0[3], buff0[4] };[/syntax] lub równoważnie:...
Wkradł się mały błąd zamiast alarm miało być alarm1 - zostało to już poprawione. alarm1 jest to dwuwymiarowa tablica wskaźników. Natomiast al_tab to tablica główna i w tej tablicy ma się znajdować wskaźnik do dwuwymiarowej tablicy alarm1. A ja chciałbym żeby w zależności od jakiegoś indeksu móc uzyskać napis albo z pierwszej kolumny albo drugiej (albo...
tablica jest wskaźnikiem na tablicę, więc powinieneś użyć operatora dereferencji (jak w przykładzie, który wstawiłem). [syntax=c]bufspc[i] = bufspc[i] * *tablica[j][1] / 100.0;[/syntax]
Z przykazań C: 1. Nazwa tablicy jest adresem do jej pierwszego elementu 2. Tablica znaków, to tablica znaków, a string to wskaźnik do pierwszego znaku w ciągu znaków zakończonego znakiem '\0' dlatego proponuję tablicę wskaników do znaku, gdzie każdy z tych wskaźników inicjalizujemy wartością NULL, a string przypisujemy dynamicznie z kopca char *tablica[34][22]...
Jeśli to jest tablica o stałej zawartości, to oczywiście tak, ale tym bardziej należy zwracać wskaźnik.
int ** tab to nie jest tablica dwuwymiarowa. Jest to jednowymiarowa tablica wskaźników, wskazujących jednowymiarowe tablice int. alokujesz tablicę wskaźników do int liczącą w elementów: int **tab = new int *[w]; następnie w pętli alokujesz w tablic int po k elementów każda i przypisujesz ich adresy elementom tablicy tab: for ( int i = 0; i < w; ++i...
(at)up Wszystko dobrze, tylko wytłumacz mi po co deklarujesz to w ten sposób : musisz zadeklarować wskaźnik do tablicy elementów typu "wskaźnik do elementów typu struct dane" w nastepujący sposób: Po co ? Przecież on potrzebuje zwykłą tablicę, czyli jeden wskaźnik na obszar pamięci zaalokowany przez menadżer sterty. Natomiast to co ty robisz, to wskaźnik...
Żeby porównywać do NULLa musiałbyś mieć CPionek*** plansza czyli plansza jest dwuwymiarową tablicą wskaźników na pionki. Wtedy wskaźnik na pionka może być NULLem. Zamiast zagłębiać się w szczegóły implementacji planszy zastanów się najpierw jakie chcesz mieć klasy w programie i jakie powinny wspierać operacje... Później zastanowisz się, jak to zaimplementować....
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...
Jednakże potrzebowałbym stworzyć takie menu w którym użytkownik wybiera sobie język i myślałem żeby rozwiązać to w taki sposób, aby każdy z tekstów był tablicą dwuwymiarową... A dlaczego to miałoby nie działać? Po prostu jako tekst związany z daną pozycją menu dajesz wskaźnik do tablicy, a w programie masz zmienną globalną określającą nr języka (indeksu...
Na moje zezowate oko to picture jest wskaźnikiem na tablicę dwuwymiarową. A więc po co ta cała afera. Tak na marginesie to każdą taką tablicę można traktować jako jednowymiarową. Ważne tutaj jest tylko przesunięcie [i][j]...[ik] od początkowego wskażnika.
Problem jest tutaj: [syntax=c]void RunNeuralNet_Classification () { ComputeFeedForwardSignals((double*)input... 100,0); ComputeFeedForwardSignals((double*)hidde... 23,1); } [/syntax] W wywołaniu funkcji masz konwersję tablicy dwuwymiarowej na jednowymiarową (rzutowanie...
A dlaczego miałoby by nie być? Jedna klasyczna tablica dynamiczna jednowymiarowa która przechowuje wskaźniki do innych tablic które zawierają konkretne wiersze tablicy.
Zrób definicję szkieletu tablicy. Potem dynamicznie zaalokuj pamięć o odpowiedniej wielkości. Na koniec nałóż tą tablicę na wskaźnik do zajętego obszaru.
nie pamiętam od której wersji Turbot potrafił do wskaźnika dodać stałą
No to if(data==1) {sekcje niezależne od mode}; else switch(Mode) case:... Nie stosuj nigdy w kodzie takich udziwnień, bo zapewne za parę tygodni jak spojrzysz na taki kod to nie będziesz wiedział co pisząc go paliłeś. A w większym projekcie to już będzie w ogóle koszmar. A jeśli chodzi o takty - to zawsze można zrobić dwuwymiarową tablicę wskaźników...
Czym innym jest tablica wskaźników, użycie syntaktycznie jest takie same, też dwuwymiarowe, ale tu już ujawniają się oddzielne autonomiczne wiersze. Przeciąganie poza zakres prawdopodbnie będzie naruszeniem pamięci. Jeszcze pół biedy jak się będzie sypać. To się szybko wykryje, debugger szybko znajdzie to miejsce. Gorzej jak jakiś bug czy backdoor...
Widzę, że chyba jeszcze nie opanowałeś tematu wskaźników. Jeżeli mam rację, nadrób zaległości.
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...
Witam, Przez wskaźnik lub lepiej przez referencje. Ale, lepiej całą przez referencję lub wskaźnik i wewnątrz bloku odnieść się do konkretnego wiersza. Koszt przekazania będzie bardzo niski. Pozdrawiam,
Witam Na początku chciałbym napisać że piszę program w AVR Studio, korzystając z kompilatora gcc. Mam kilka pytań: W jaki sposób zadeklarować wskaźnik do tablicy dwuwymiarowej, której postać przedstawiona jest poniżej: volatile unsigned char lcd_text[][16] = {"kanal 1-nap.: ", "kanal 1-hist.: ", "kanal...
Witam, jak przekazac poprawnie wskaznik tablicy dwuwymiarowej do funkcji? [syntax=c] unsigned int button_pos_1 [15][4] PROGMEM= //x,y,h,num_chars { {10,10,20,5}, {10,30,20,5}, {10,50,20,5}, {10,70,20,5}, }; void button_init(unsigned int* ptr[]); int main(void) { TFT_init(); //inicjalizacja wyswietlacza TFT_fill(COLOR_16BITS_BLUE); button_init(button_pos_1);...
Definiuję tablicę jako wskaźnik na wskaźniki, bo będzie dwuwymiarowa. Potem w zagnieżdżonej pętli przydzielam na poszczególne elementy tablicy pamięć i wpisuję wartości. Wychodzę z pętli. Chcę się móc odwołać do elementów tej tablicy w dalszej części main, a one nie są pamiętane. Tak przydzielam pamięć na tablicę: [syntax=cpp] wsk=head; i=0; j=0; array=malloc(sizeof(t));...
Nie chciałbym mieć pół miliona dzieci ;p - Dzień dobry, jestem ojcem 10 dzieci i muszę znaleźć pracę - Dobrze, a co jeszcze umie pan robić? Myślę, że algorytm jest dobry jeśli faktycznie powierzchnia ściany jest mała. Jednak przy dużej to wymaga kompletnie innego podejścia. Wziąłbym pierwszy wiersz, podzielił na kwadraty i dla każdego poszukał, czy...
Witam! Musisz tę tablicę przekazać do funkcji jako: "typ wskaźnik do n-elementowych tablic typu 'typ' " Przykład: zadeklarowałeś tablicę dwuwymiarową typu: [syntax=c]typ TABLICA[J][I];[/syntax] Wtedy do funkcji przekazujesz ją jako: [syntax=c]zwracany_typ moja_funkcja(typ (*t_f)[I]) { typ moja_zmienna; int i_f, j_f; ciało funkcji... }[/syntax] gdzie:...
Tablic nie są przesyłane do funkcji poprzez kopiowanie jak zmienne typów fundamentalnych, tablica to typ złożony z typów fundamentalnych. Tablice mogą być duże i dlatego nie są kopiowane a do funkcji wysyłany jest adres owej tablicy. Także jako taka funkcja pracuje na oryginalnym egzemplarzu tablicy wysłanej do funkcji. Funkcja może zwracać wskaźnik...
Witam Napisałem program mający po kolei: 1. Robić array jednowymiarowy o 7 elementach: 1,2,3,8,16,24,48. to wyglada ok 2. Z niego zrobić dwuwymiarowy array na podstawie takiej, że ten array jest jakby przylegający do niego od góry i lewej strony, (indeksy i,j) i z niego wyliczać logarytm naturalny. to też 3. Stworzyć funkcję sumującą elementy znajdujące...
Jeżeli chcesz zaoszczędzić miejsca, to sam sobie przeczysz, chyba mało znasz język C. To pięknie, że nam udowodniłeś, iż da się coś zrobić podwójnie okrężną drogą, ale nie nazywaj tego optymalizacją. Niepotrzebne jest wstępne zerowanie buforów, niepotrzebne przepisywanie adresów tablic buforujących pod wskaźniki, niepotrzebne korzystanie z funkcji strcpy!...
Jeśli wszystkie tablice są jednakowej długości, to może zrób z tego tablicę dwuwymiarową. Napisz funkcję wyświetlającą, która oczekuje w parametrze wskaźnik na char i przekazuj odpowiedni adres elementu z tablicy. np. Deklarujesz tablicę tak: [syntax=cpp] char tablica[2][10] = {{1,2,3,4,5,6,7,8,9,10}, {11,12,13,14,15,16,17,18,19,20}}; [/syntax] Funkcja...
Witam. Mam wykonać polecenie: 'Stworzyć strukturę zawierającą dynamicznie zaalokowaną tablicę dwuwymiarową i jej wymiary. Tablica dwuwymiarowa jest reprezentowana przez odpowiedni wskaźnik.' Oprócz tego jeszcze zwolnić zaalokowaną pamięć. Oto co napisałem.. byłbym wdzięczny gdyby ktoś sprawdził czy dobrze to zrobiłem i ewentualnie pokazał mi błąd. #include...
Witam wszystkich mam takie pytanie: otóż zaczynam zabawe ze wskaźnikami w C i napisałem funkje, która kopiuje kopiuje mi tablice dwuwymiarowe, funkcja wygląda tak: void przypiszPomocniczej(int *p, int *c ) { for (int i=0;i<4;i++) { for (int j=0;j<4;j++) { *p++=*c++; } } } tablice są [4][4],...
Po raz "enty" piszę, żebyś wrzucał konkretny kod który pozwoli się odnieść do problemu, najlepiej z konkretnym komunikatem kompilatora w którym opisuje on co mu się nie podoba. Skąd ja mam wiedzieć, jaki jest typ zmiennej `tablica`? Czy jest to tablica dwu- czy trój-wymiarowa? A może to znów nie jest `char` tylko coś innego. P.S. Tym rzutowaniem na...
Jako pierwszy argumentow podajesz pewnie wskaznik na tablice, a drugi to pewnie wymiar, ale to mozne da sie obliczyc pewnie z sizeof(tablica). Jak chcesz dynamicznie tworzyc tablice o zmiennym rozmiarze, to uzywasz malloc().
jeśli tworzysz tablicę dynamiczą na każdym z poziomów, to każdy z poziomów musisz osobno alokować. Poprawnie to wykonałeś w poście z 11 Lis 2008 16:37:49 Jeśli chcesz stworzyć mieszaną, to wskaźnik powinien obejmować jeden poziom, czyli: int *tablica[w1][w2] Teraz możesz tworzyć kolejne tablice dwuwymiarowe od razu, tworząc w ten sposób...
tablice dwuwymiarowe tablice dwuwymiarowe sortowanie tablice dwuwymiarowe potrzebna
parkside adapter mikrofon kalibrujący halogeny przód
engine fault peugeot interfejs delphi
Samsung piekarnik – nie grzeje powyżej 60°C mimo ustawienia 160°C, wyświetlacz pokazuje 160 Podgrzewacz wody Stiebel Eltron nie grzeje - przyczyny i rozwiązania