• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tablica wskaznikow jako argument funkcji

Object Storage Arubacloud
–1 głos
1,020 wizyt
pytanie zadane 9 września 2018 w C i C++ przez niezalogowany

Witam

Mam problem ze stworzeniem tablicy wskaznikow i wyslaniem jej do funkcji.

Deklaracja tablicy:

int *tabwsk[10]

No, i teraz jak ja moge to wyslac do funkcji jako argument?

int funk(int * wsk);

Probowalem wyslac tylko nazwe tablicy (^) ale nie dziala. Probowałem też normalnie, jako tablicę i też nie działa.

Z góry dzięki

3 odpowiedzi

0 głosów
odpowiedź 9 września 2018 przez criss Mędrzec (172,590 p.)
wybrane 9 września 2018
 
Najlepsza
Tak samo jak tablica int (np. int[10]) jest konwertowalna na wskaźnik int*, tak tablica wskaźników (int*[10]) będzie konwertowalna na int**. Po prostu zmień typ parametru funkcji na int**.
komentarz 9 września 2018 przez niezalogowany
error: cannot convert 'int**' to 'int*' for argument '1' to 'int f(int*)
komentarz 9 września 2018 przez criss Mędrzec (172,590 p.)
komentarz 9 września 2018 przez criss Mędrzec (172,590 p.)
Jeśli tak ci prościej to możesz równie dobrze parametr funkcji zrobić tak: int *wsk[]
0 głosów
odpowiedź 9 września 2018 przez RafalS VIP (122,820 p.)
int *tab[10];
int** wsk = tab;

 

komentarz 9 września 2018 przez niezalogowany
#include <iostream>

using namespace std;

int f(int *tabwsk);

int main(){

int *tab[10];
int** wsk = tab;

    f(wsk);

    return 0;
}
int f(int *tabwsk){
    for(int i=0;i<10;i++){
        tabwsk[i] = new int(i);
    }
}

Nie działa, nawet jak przestawie w funkcji z int *tabwsk na **tabwsk

komentarz 9 września 2018 przez RafalS VIP (122,820 p.)
Chciałem pokazać, ze int** moze wskazywac na tablice wskaznikow. Typ argumentu dla tablicy wskaźnikow powinien zatem być int**. I przy wywolaniu przesylasz po prostu tablice, bez * czy &
–6 głosów
odpowiedź 9 września 2018 przez Kamil110501 Bywalec (2,490 p.)

ale po co ci tablica wskaźników? 

tak się tego nie robi.

jak już to:

using namespace std;
int *tabwsk[10];
int f(int *tabwsk);
int main(){
	return 0;
}
int f(int *tabwsk){
	//kod funkcji
}

wszystko działa i sie kompiluje :)

komentarz 9 września 2018 przez niezalogowany
int main(){

    f(tabwsk);

    return 0;
}

Wywolanie funkcji

error: cannot convert 'int**' to 'int*' for argument '1' to 'int f(int*)

 

 

komentarz 9 września 2018 przez niezalogowany
Jeszcze dodam ,że po prostu chciałem sprawdzić czy tak się da
komentarz 9 września 2018 przez Kamil110501 Bywalec (2,490 p.)
using namespace std;
int *tabwsk[10];
int f(int *tab);
int main(){
	f(*tabwsk);
	return 0;
}
int f(int *tab){
	//kod funkcji
}

Proszę :) 

Musisz ją przekazać przez wskaźnik.

pozdrawiam

komentarz 9 września 2018 przez criss Mędrzec (172,590 p.)

XDDD "tak się tego nie robi" Tzn. czego? Nie tworzy się tablicy wskaźników bo... tak? Poza tym - twój kod jest identyczny z kodem autora, tylko, że wyciąłeś to co generowało błąd XD Gratuluję! Mam nadzieję, ze jesteś tylko niegroźnym trollem, pozdrawiam

PS:

f(*tabwsk);

to jest dereferencja, a nie pobranie adresu jak napisałeś czyli dokładnie odwrotna operacja

komentarz 9 września 2018 przez Kamil110501 Bywalec (2,490 p.)
nie po prostu nie wiedziałem jak to działa bo nigdy tego nie używałem, a trollem nie jestem
komentarz 9 września 2018 przez criss Mędrzec (172,590 p.)
Niestety odpowiadanie podczas gdy nie wiesz jak to działa kończy się siedmioma minusami jak widzisz
komentarz 9 września 2018 przez Kamil110501 Bywalec (2,490 p.)
dużo mi to da xd

Podobne pytania

0 głosów
1 odpowiedź 559 wizyt
0 głosów
1 odpowiedź 833 wizyt
pytanie zadane 8 kwietnia 2018 w C i C++ przez giedymin33 Początkujący (290 p.)
0 głosów
1 odpowiedź 604 wizyt
pytanie zadane 6 kwietnia 2018 w JavaScript przez JSJerry Początkujący (260 p.)

92,555 zapytań

141,402 odpowiedzi

319,540 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...