• 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**

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

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!

...