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

0 głosów
361 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,156 wizyt
pytanie zadane 8 kwietnia 2018 w C i C++ przez giedymin33 Początkujący (290 p.)
0 głosów
2 odpowiedzi 1,452 wizyt
0 głosów
1 odpowiedź 915 wizyt

93,632 zapytań

142,556 odpowiedzi

323,057 komentarzy

63,140 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...