Ĺadny brzuch
Mam problem ze wskaźnikami albo czymś innym, z czym sobie nie mogę poradzić w programie. Piszę program na zaliczenie i mam w nim funkcje:
void Rysuj_Klatke(char frame[32][16],char sector[3][4]);
Nie czuję się dobrze w wskaźnikach więc użyłem tablic globalnych, funkcja ma za zadanie przerobić tablice sector przez pewne operacje na tablice frame, ale nie w tym problem. Jak już wspomniałem, mam tablice zadeklarowane globalnie:
char klatka[32][16]; //Tymczasowa klatka char sektor[3][4]; //Tymaczasowy sektor
Oraz w ciele main() wywołuję powyższą funkcję:
Rysuj_Klatke(klatka, sektor);
Używam środowiska Microsoft Visual Studio C++ Express 2008, program się kompiluje jednak linker zwraca błąd:
PPP08B.obj : error LNK2019: unresolved external symbol "void __cdecl Rysuj_Klatke(char (* const)[16],char (* const)[4])" (?Rysuj_Klatke@@YAXQAY0BA@DQAY03D@Z) referenced in function _main
I nie mogę zbudować projektu. Co robię źle? Żeby uniknać niedopowiedzeń to zamiana w/w tablic na lokalne dla main() nic nie zmienia, podobnie deklaracja frame[32][16] jest równoważna frame[][16] jako argument funkcji, więc nie tu leżą błędy.
PROSZĘ O POMOC!
Użytkownik marek_merlin edytował ten post 15 listopad 2008, 21:30
zrob tak:
void Rysuj_Klatke(char **frame, char **sector);
Tym razem wywala błąd:
error C2664: 'Rysuj_Klatke' : cannot convert parameter 1 from 'char [32][16]' to 'char **' 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Przy linijce z wywołaniem funckji, dodam, że nie zmieniłem niczego poza deklaracją funkcji tak jak sugerował fernandez
Więc dalej nie wiem co jest nie tak
a tak w ogole jesli uzywasz tablic gloablnych to nie musisz ich przekazywac do funkcji, moze wlasnie przez to jest konfilkt..
edit@down:
fakt, tez nie zauwazylem..
Użytkownik fernandez edytował ten post 16 listopad 2008, 09:36
Taki błąd (w pierwszym poście) pojawia się, gdy wywołujesz funkcję nie posiadającą definicji (albo kompilator nie może jej znaleźć). Problem nie leży w sposobie przekazywania tablic do funkcji.
Użytkownik Kozack edytował ten post 15 listopad 2008, 23:43
No i skończyło się, że wszystko przez niedopatrzenia albo głupie błędy, dzięki za pomoc!
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
void Rysuj_Klatke(char frame[32][16],char sector[3][4]);
Nie czuję się dobrze w wskaźnikach więc użyłem tablic globalnych, funkcja ma za zadanie przerobić tablice sector przez pewne operacje na tablice frame, ale nie w tym problem. Jak już wspomniałem, mam tablice zadeklarowane globalnie:
char klatka[32][16]; //Tymczasowa klatka char sektor[3][4]; //Tymaczasowy sektor
Oraz w ciele main() wywołuję powyższą funkcję:
Rysuj_Klatke(klatka, sektor);
Używam środowiska Microsoft Visual Studio C++ Express 2008, program się kompiluje jednak linker zwraca błąd:
PPP08B.obj : error LNK2019: unresolved external symbol "void __cdecl Rysuj_Klatke(char (* const)[16],char (* const)[4])" (?Rysuj_Klatke@@YAXQAY0BA@DQAY03D@Z) referenced in function _main
I nie mogę zbudować projektu. Co robię źle? Żeby uniknać niedopowiedzeń to zamiana w/w tablic na lokalne dla main() nic nie zmienia, podobnie deklaracja frame[32][16] jest równoważna frame[][16] jako argument funkcji, więc nie tu leżą błędy.
PROSZĘ O POMOC!
Użytkownik marek_merlin edytował ten post 15 listopad 2008, 21:30
zrob tak:
void Rysuj_Klatke(char **frame, char **sector);
Tym razem wywala błąd:
error C2664: 'Rysuj_Klatke' : cannot convert parameter 1 from 'char [32][16]' to 'char **' 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Przy linijce z wywołaniem funckji, dodam, że nie zmieniłem niczego poza deklaracją funkcji tak jak sugerował fernandez
Więc dalej nie wiem co jest nie tak
a tak w ogole jesli uzywasz tablic gloablnych to nie musisz ich przekazywac do funkcji, moze wlasnie przez to jest konfilkt..
edit@down:
fakt, tez nie zauwazylem..
Użytkownik fernandez edytował ten post 16 listopad 2008, 09:36
Taki błąd (w pierwszym poście) pojawia się, gdy wywołujesz funkcję nie posiadającą definicji (albo kompilator nie może jej znaleźć). Problem nie leży w sposobie przekazywania tablic do funkcji.
Użytkownik Kozack edytował ten post 15 listopad 2008, 23:43
No i skończyło się, że wszystko przez niedopatrzenia albo głupie błędy, dzięki za pomoc!