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

Tablica wskaznikow jako argument funkcji

Aruba Cloud - Virtual Private Server VPS
–1 głos
1,468 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ź 804 wizyt
0 głosów
1 odpowiedź 1,054 wizyt
pytanie zadane 8 kwietnia 2018 w C i C++ przez giedymin33 Początkujący (290 p.)
0 głosów
1 odpowiedź 677 wizyt
pytanie zadane 6 kwietnia 2018 w JavaScript przez JSJerry Początkujący (260 p.)

93,327 zapytań

142,325 odpowiedzi

322,396 komentarzy

62,657 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...