От стандарта C11 (проект): 7.21.6.2/12:Использования Scanf% р UB
Если элемент ввода является значением, преобразованным ранее при той же программе выполнения, указатель, что результаты сравнят равны это значение; В противном случае поведение преобразования% p не определено.
Может кто-нибудь предоставить код для этой части стандарта, пожалуйста. Не могу понять, как получить %p
с ввода.
Если у вас есть указатель-переменная 'p', printf с помощью преобразования'% p', а затем скопировать, вставить и scanf, используя одно и то же преобразование '% p' в другую переменную-указатель' q' в том же процессе, тогда 'р == q'. – DyZ
Вы не хотите, например, «printf» вывести сегментированные значения указателя 8088, такие как «5: abcd», и отсканировать их на плоской архитектуре 386. – alk
Обратите внимание, что успешное перемещение указателя указателя -> text -> приведет к указателю, который «сравнивает (равно) с этим значением». У исходных и конечных указателей все еще могут быть разные битовые кодировки, но эквивалентные _values_, как и '+0.0 == -0.0' Детали зависят от платформы. – chux