Pieter Opublikowano 15 Lipca 2010 Udostępnij Opublikowano 15 Lipca 2010 Mam problem, napotkałem nieoczekiwany błąd z mojej strony przekazując pointer do funkcji... numerki przy linii oznaczają numery faktycznych linii :P Definicje itd. Numery linii nie są tu ważne #define MAX_CLIENT_BUFFER 16384 typedef unsigned char pChar; int sizepos; pChar sBuffer[MAX_CLIENT_BUFFER]; Funkcja którą napisałem 91. void PutByte(pChar byte, pChar *buffer[MAX_CLIENT_BUFFER], int *position) 92. { 93. *buffer[*position] = byte; 94. *position = *position + 1; 95. } Kod wykonywania 151. sizepos = 2; 152. PutByte(0x09, &sBuffer, &sizepos); 153. SendPacket(client->ClientSock, sBuffer, sizepos); a komunikat który otrzymałem to: ihooy@ihooy-laptop:~/Pulpit$ cc servth.c -o server -lpthread servth.c: In function ‘ParsePacket’: servth.c:152: warning: passing argument 2 of ‘PutByte’ from incompatible pointer type servth.c:91: note: expected ‘pChar **’ but argument is of type ‘pChar (*)[16384]’ dopiero się uczę C/C++ i po prostu nie mam pojęcia co może być tu źle... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 15 Lipca 2010 Udostępnij Opublikowano 15 Lipca 2010 Zmień ten parametr w PutByte: pChar* buffer[MAX_CLIENT_BUFFER] na jedno z tych: pChar buffer[MAX_CLIENT_BUFFER] pChar buffer[] pChar* buffer i popraw te linijki: 152. PutByte(0x09, &sBuffer, &sizepos); na PutByte(0x09, sBuffer, &sizepos); i 93. *buffer[*position] = byte; 94. *position = *position + 1; na buffer[(*position)++] = byte; Ten parametr zdefiniowałeś jako tablice wskaźników na typ pChar, a konflikt typów występuje pewnie dlatego, że nie możesz pobrać adresu wskaźnika na tą statyczną tablice, bo ten nie będzie zachowany w pamięci (po skompilowaniu kod odwoływałby bezpośrednio do tego bloku pamięci). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 15 Lipca 2010 Autor Udostępnij Opublikowano 15 Lipca 2010 dzięki, mniej więcej taką samą odpowiedź dostałem na 4programmers. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się