Ответы Mail.ru: Читаю книжку по C, помогите с указателями

Вроде как есть маленькие тонкости с указателями.

Первая - стандарт С не гарантирует очевидной вещи, что указатели разного типа имеют одинаковый размер. Поэтому чисто в теории приведение одного указателя к другому может привести к потере данным.

Вторая - выравнивание (Возможно как следствие из первого, но уж слишком мутная тема, связанная с разными архитектурами и соответственно компиляторами).

EXP36-C

И если для архитектуры x86 максимум что может произойти - замедление кода, то у других архитектур - фиолетовый экран смерти, или что там у них вместо синего.

Так что некоторые компиляторы имеют право предупреждать.

Но в данном случае функция printf c параметром %p что так, что эдак принимает все указатели как void*, а мы же ей доверяем? То просим и особо бдительные компиляторы доверять.