Como o strcpy_s funciona?
Como todos sabemos, strcpy_s é uma versão de segurança do strcpy.
Mas eu me pergunto como isso funciona ...
vamos ver alguns exemplos.
declaração de strpy_s:
errno_t strcpy_s (_CHAR * _DEST, tamanho_t _SIZE, const _CHAR * _SRC)
eg1
char dest[5];
char* src = "abcdefg";
strcpy_s(dest,5,src);
Retornará uma afirmação.
Acho que consigo entender isso, use_TAMANHO para garantir que não possamos copiar mais caracteres do que_TAMANHO
Mas .. eu não consigo entender isso:
char dest[5];
char* src = "abcdefg";
strcpy_s(dest,10,src);
ainda podemos obter uma afirmação, como isso aconteceu?
ps, o erro foi:
Falha na asserção de depuração
expressão: (L "O buffer é muito pequeno" && 0)
No VS2013
O strcpy_s verifica o tamanho do dest dentro do corpo? e se é verdade, como? como verificar um ponteiro como _DEST?