Mam zabawny problem przy użyciu tej funkcji. Używam go następująco:sprintf_s problem
int nSeq = 1;
char cBuf[8];
int j = sprintf_s(cBuf, sizeof(cBuf), "%08d", nSeq);
I za każdym razem otrzymuję wyjątek. Wyjątkiem jest mały bufor. Po zmianie drugiego pola w funkcji na sizeof (cBuf) + 1.
Dlaczego muszę dodać, jeśli chcę skopiować tylko 8 bajtów i mam tablicę zawierającą 8 bajtów?
Więc muszę zwiększyć rozmiar bufora o 1? –
Tak. 1 ma dokładnie rozmiar terminatora zerowego. W moim kodzie dosłownie piszę 'char cBuf [8 + 1]', aby podkreślić fakt, że potrzebuję miejsca dla tej dodatkowej postaci. – xtofl
Użyłem 'char [sizeof (" 00000000 ")]'. – MSalters