Я читал о спецификаторе формата %n
в C на этом вопросе. Но когда я попробовал следующую программу на разных компиляторах С++, это дало мне разные результаты.
Почему? Какова причина? Существует ли undefined или определенное поведение реализации?
#include<stdio.h>
int main()
{
int c = -1;
printf("geeks for %ngeeks ", &c);
printf("%d", c);
getchar();
return 0;
}
Вывод:
Блоки кода 13.12: (правильный вывод)
geeks for geeks 10
Borland/CodeGear/Embarcadero С++: (правильный вывод)
geeks for geeks 10
Orwell Dev С++:
geeks -1
Microsoft Visual Studio 2010:
Debug assertion failed ("'n' format specifier disabled",0)