Validação de parâmetro
A maioria das funções CRT com segurança avançada e muitas das funções preexistentes validam seus parâmetros.Isso pode incluir verificar ponteiros NULL, a verificação de que os inteiros se encaixam em um intervalo válido ou verificar se os valores de enumeração são válidos.Quando um parâmetro inválido for encontrado, o manipulador de parâmetro inválido é executado.
Rotina manipuladora de parâmetro inválido
O comportamento do tempo de execução c quando um parâmetro inválido for encontrado é chamar o manipulador de parâmetro inválido atribuída no momento.O parâmetro inválido do padrão invoca o relatório de pane do Watson, que faz com que o aplicativo falhe e pergunta ao usuário se ele deseja carregar o despejo de memória à Microsoft para análise.No modo de depuração, o parâmetro inválido também resulta em uma declaração com falha.
Esse comportamento pode ser alterado usando a função _set_invalid_parameter_handler para definir o manipulador de parâmetro inválido para sua própria função.Se a função que você especifica não encerra o aplicativo, o controle é retornado para a função que recebeu os parâmetros inválidos e essas funções normalmente deixará de execução, retornar um código de erro e defina errno a um código de erro.Em muitos casos, o errno o valor de retorno e o valor são EINVAL, que indica um parâmetro inválido.Em alguns casos, um código de erro mais específico é retornado, como EBADF para um ponteiro de arquivo inválido passado como um parâmetro.Para obter mais informações sobre errno, consulte errno, _doserrno, _sys_errlist e _sys_nerr.