Gefahren bei der Verwendung von% * c zum Löschen des Scanf-Puffers

Besteht die Gefahr, dass% * c in scanf () verwendet wird, um den Puffer bei Bedarf zu löschen?

Zum Beispiel:

char c;
for (int i = 0; i < 5; i++) {
  scanf("%c%*c", &c);
}

Oder

char* str;
char c;
int i;
scanf("%s", str);
scanf("%d%*c", &i);
scanf("%c%*c", &c);

Sollte es Bedenken hinsichtlich Pufferüberläufen oder anderen Sicherheitsproblemen geben? Es scheint keine formale Dokumentation für die Verwendung des Sterns in scanf auf diese Weise für C zu geben (BEARBEITEN Dies ist nicht wahr), daher habe ich Probleme herauszufinden, was genau mit den zusätzlichen Zeichen passiert, die eingegeben werden. Gibt es eine bessere Möglichkeit, den Scanf-Puffer in C zu löschen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage