Funkcja wcscpy_s nie działa???

0

Służy ona do kopiowania tablicy WCHARów (16 bitów na znak w standardzie UNICODE) do drugiej tablicy. Drugi argument to TEORETYCZNIE liczba znaków jaką chcemy skopiować.

No i chodzi o to, że da się skopiować tylko i wyłącznie całą tablicę, czyli to niżej nie działa, bo wywali error "Buffer is too small":

    WCHAR wszToken[60];
    const WCHAR *pToken = L"Polska 3.25 Rosja-15 sfdd";
    wcscpy_s(wszToken, 2, pToken); 

Czy jednak coś źle robię?

0

http://msdn.microsoft.com/en-us/library/td1esda9%28v=vs.80%29.aspx
Parameters:
strDestination - Location of destination string buffer
numberOfElements - Size of the destination string buffer.
strSource - Null-terminated source string buffer.
Jak podałeś że masz tylko 2 znaki w tym wszToken, to rzecz jasna że pTokien tam się nie mieści.
wcscpy_s(wszToken,60, pToken);

0

Pisząc w C++ nie trzeba koniecznie tego argumentu podawać, gdy pierwszym jest tablica (a nie wskaźnik). Uzupełnieniem tego argumentu zajmuje się szablon.

0

Drugi argument to TEORETYCZNIE liczba znaków jaką chcemy skopiować.
Nie, drugi argument to rozmiar bufora (w znakach). Ale nie po to, by kopiować określoną liczbę znaków, ale po to, by właśnie dostać błąd (a nie mazać po pamięci) jeśli bufor jest za mały.

1 użytkowników online, w tym zalogowanych: 0, gości: 1