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

Undefined reference to...

VPS Starter Arubacloud
0 głosów
1,820 wizyt
pytanie zadane 30 stycznia 2016 w C i C++ przez Avalon Obywatel (1,130 p.)

Witam mam taki oto problem.W poniższym programie kompilator wyświetla mi błąd z opisu w odniesieniu do wszystkich trzech funkcji,czy wiecie dlaczego tak jest?Oto kod:

#include <iostream>
#include<cstdlib>
#include<time.h>
using namespace std;

int zlicz (int);
void wypisz (int);
void losuj(int);
int main()
{
    int tablica[999];
    int wynik;
    losuj(tablica[999]);
    wypisz(tablica[999]);
    wynik=zlicz(tablica[999]);
    cout<<"\nWynik to: "<<wynik<<endl;
    return 0;
}
void losuj(int tablica[])
{
   srand(time(NULL));
   for(int i=0;i<999;i++)
    {
        tablica[i]=rand()%(4+1)+6;
    }
}
void wypisz (int tablica[])
{
    for(int i=0;i<999;i++)
    {
        cout<<tablica[i]<<"  ";
    }
}
  int zlicz (int tablica[])
  {
      int wynik=0;
      for(int i=0;i<999;i++)
    {
      wynik+=tablica[i];
    }
    return wynik;
  }

 

1 odpowiedź

+2 głosów
odpowiedź 30 stycznia 2016 przez MetGang Nałogowiec (34,360 p.)
wybrane 30 stycznia 2016 przez Avalon
 
Najlepsza

Przyczyna jest prosta:

void losuj(int tablica[]);
// to nie to samo co
void losuj(int tablica);

A więc:

void losuj(int[]);
// jest tym samym co
void losuj(int tablica[]);

 

komentarz 30 stycznia 2016 przez Avalon Obywatel (1,130 p.)
Rzeczywiście,głupi błąd,natomiast teraz wyświetliło mi się 6 błędów:
 kopia\main.cpp||In function 'int main()':|
 kopia\main.cpp|13|error: invalid conversion from 'int' to 'int*' [-fpermissive]|
 kopia\main.cpp|8|error:   initializing argument 1 of 'void losuj(int*)' [-fpermissive]|
 kopia\main.cpp|14|error: invalid conversion from 'int' to 'int*' [-fpermissive]|
 kopia\main.cpp|7|error:   initializing argument 1 of 'void wypisz(int*)' [-fpermissive]|
 kopia\main.cpp|15|error: invalid conversion from 'int' to 'int*' [-fpermissive]|
 kopia\main.cpp|6|error:   initializing argument 1 of 'int zlicz(int*)' [-fpermissive]|

I nie mam pojęcia jak to naprawić i z czego wynikają :(
komentarz 30 stycznia 2016 przez Avalon Obywatel (1,130 p.)
Oraz czy wiesz może jak naprawić w codeblocks wyświetlanie miejsca błędu?

Normalnie wyświetlał się obok nr linii czerwony kwadrat którego teraz nie ma
komentarz 30 stycznia 2016 przez MetGang Nałogowiec (34,360 p.)

wynik=zlicz(tablica[999]);

Wysyłasz do funkcji 999 element tablicy czyli zwykły int. Prześlij samą tablicę:

wynik=zlicz(tablica);

To samo tyczy się reszty funkcji.

komentarz 30 stycznia 2016 przez Avalon Obywatel (1,130 p.)
ups :D

Wielkie dzięki :)

Podobne pytania

0 głosów
1 odpowiedź 9,533 wizyt
pytanie zadane 31 lipca 2016 w C i C++ przez Iamhexi Obywatel (1,330 p.)
0 głosów
2 odpowiedzi 1,832 wizyt
0 głosów
1 odpowiedź 486 wizyt
pytanie zadane 31 grudnia 2015 w C i C++ przez Avernis Nałogowiec (27,400 p.)

92,980 zapytań

141,943 odpowiedzi

321,189 komentarzy

62,307 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 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...