Tengo un problema raro al usar esta función. lo uso como sigue:sprintf_s problema
int nSeq = 1;
char cBuf[8];
int j = sprintf_s(cBuf, sizeof(cBuf), "%08d", nSeq);
Y cada vez que recibo una excepción. La excepción es buffer to small. Cuando cambié el segundo campo en la función a sizeof (cBuf) + 1.
¿Por qué tengo que agregar uno si solo quiero copiar 8 bytes y tengo una matriz que contiene 8 bytes?
¿Debo aumentar el tamaño del buffer en 1? –
Sí. 1 es exactamente el tamaño del terminador nulo. En mi código, incluso literalmente escribo 'char cBuf [8 + 1]' para enfatizar el hecho de que necesito lugar para este personaje extra. – xtofl
He usado 'char [sizeof (" 00000000 ")]'. – MSalters