Perigos de usar% * c para limpar o buffer scanf
Há algum perigo em usar% * c no scanf () para limpar o buffer quando necessário.
Por exemplo:
char c;
for (int i = 0; i < 5; i++) {
scanf("%c%*c", &c);
}
Ou
char* str;
char c;
int i;
scanf("%s", str);
scanf("%d%*c", &i);
scanf("%c%*c", &c);
Deve haver alguma preocupação com estouro de buffer ou outros problemas de segurança? Parece não haver documentação formal para o uso do asterisco no scanf desta forma para C (EDITAR Isso não é verdade), por isso estou tendo dificuldade em descobrir exatamente o que acontece com os caracteres extras que são inseridos. Existe uma maneira melhor de limpar o buffer scanf em C?