The following program is incorrect, as scanf reads 2 bytes from stdin and writes them to p:
int main() {
char* p = "Hello";
scanf("%2c", p);
if (p[1] != 'e') reach_error();
}
However, ULTIMATE currently report this program as correct, as only one single byte is written, since the patern is simply ignored.