[c++] memcpy, w miejscu docelowym pojawia się niechciany znak
Ostatnio zmodyfikowano 2015-05-13 13:10
kondzioku Temat założony przez niniejszego użytkownika |
[c++] memcpy, w miejscu docelowym pojawia się niechciany znak » 2015-05-13 09:51:39 Witam.
Używam funkcji memcpy.
W tym przypadku memcpy(buf_do_wyslania, "!M+0480$", 8); po wyświetleniu buf_do_wyslania daje !M+0400$
Jednak przy sytuacji memcpy(buf_do_wyslania_4, "1234", 4); po wyświetleniu buf_do_wyslania_4 daje 1234 z niepożądanym znakiem a dokładnie uśmiechniętą buźką.
tutaj wycinek konsoli : http://zapodaj.net/89e464301f102.png.html
Czy memcpy ma granicę ile bajtów może kopiować? |
|
Piastlis |
» 2015-05-13 09:57:26 A to pewnie chodzi o sposób wyświetlania tekstu.Wyświetlasz jako char[] czy string? Jeżeli string to ma samym końcu musi być zero. Albo "znak po znaku". |
|
akwes |
» 2015-05-13 10:48:58 A z jakiego powodu nie kopiujesz znaku końca łańcucha znakowego? "a" to dwa elementy: ['a']['\0'] |
|
kondzioku Temat założony przez niniejszego użytkownika |
» 2015-05-13 13:10:53 z tym sobie poradziłem, na ostatnie miejsce łańcucha wrzucam 0, reszta się zeruje. Ale mam kolejny problem. Wykorzystuję UART do komunikacji po USB. Program może raz wysłać porcję bajtów po czym zatrzymuje się, tzn nie chce w kolejnej pętli wysłać kolejnych komunikatów.
wykorzystuję bibliotekę http://www.teuniz.net/RS-232/
do wysyłania używam Sendbuff, odbierania PollCmport. |
|
« 1 » |