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?

questionAnswers(3)

yourAnswerToTheQuestion