Обратите внимание, что вы получаете простое предупреждение. Ваш код будет , вероятно, выполняться должным образом.
Спецификатор преобразования "%p"
в printf ожидает аргумент void*
; pt1
имеет тип int*
.
Предупреждение является хорошим, потому что int*
и void*
могут, в странных реализациях, иметь разные размеры или битовые комбинации или что-то .
Преобразование int*
в void*
с использованием заклинания ...
printf("%p\n", (void*)pt1);
... и все будет хорошо, даже на странных реализациях.