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

Błędny argument funkcji - Cannot convert from int* to Struktura**

Object Storage Arubacloud
0 głosów
216 wizyt
pytanie zadane 24 listopada 2018 w C i C++ przez Alan Kruszyński Obywatel (1,410 p.)

Mam taką funkcję: 

void sortowanie(Struktura ** wsk, int rozm){
    int j;
    bool zamiana;

    for (i=0; i<=rozm; i++){

        for (j=0; j<=rozm-i; j++){

            zamiana = 0;

            if (((wsk[j])->i) > ((wsk[j+1])->i)) {

                swap(wsk[i], wsk[i+1]);
                zamiana = 1;
            }
        }
        if (zamiana == 0){
            break;
        }
    }
    cout<<endl;
     for(i=0; i<=10; i++){
cout<<wsk[i]->i<<" ";
    }
}

A tak ją wywołuję:

sortowanie(tab, N);

Zmienna globalna int * tab, to tablica wskaźników na struktury, sortuję je bąbelkowo od najmniejszej względem pola int i. Jedna funkcja tworzy te struktury i wskaźniki na nie wrzuca do tablicy tab, na koniec zwraca adres tej tablicy instrukcją return tab. Potem wywołuję funkcję sortowania z argumentem adres tablicy i jej rozmiar i w linijce wywołania wywala błąd "Cannot convert from int* to Struktura** for argument 1. Przeszukałem internet, wypróbowałem rozwiązania z podobnych problemów ale nic. Porównywałem kod z kolegą z grupy i niby mamy to samo składniowo, ale jedyne co kolega może w tej sytuacji powiedzieć to dobrze znane informatyczne "U mnie działa"

2 odpowiedzi

0 głosów
odpowiedź 24 listopada 2018 przez sefir Dyskutant (8,560 p.)
Przecież masz tam parametr typu Struktura a podajesz int, to jak ma to działać :P
0 głosów
odpowiedź 24 listopada 2018 przez Arkadiusz Sikorski Pasjonat (20,160 p.)

Najwidoczniej wywołujesz sortowanie() ze wskaźnikiem na tablicę intów, a nie tablicę zdefiniowanych przez siebie struktur :)

komentarz 25 listopada 2018 przez Alan Kruszyński Obywatel (1,410 p.)
Więc jaki podać argument żeby to zadziałało? Ja już nie mam pomysłów. Funkcja na pewno jest napisana tak jak trzeba, więc tylko argument trzeba zmienić. Chyba że funkcja tworząca tablicę zwraca nieodpowiednią wartość (jest tam "return tab") i to ciągnie za sobą w następstwie ten błąd, ale to chyba raczej argument w wywołaniu

Podobne pytania

0 głosów
1 odpowiedź 840 wizyt
pytanie zadane 8 kwietnia 2018 w C i C++ przez giedymin33 Początkujący (290 p.)
0 głosów
2 odpowiedzi 1,120 wizyt
0 głosów
1 odpowiedź 563 wizyt

92,568 zapytań

141,422 odpowiedzi

319,642 komentarzy

61,957 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!

...