*pbAdr1
- указатель.Вы предоставляете указатель на аргумент %x
для printf
, который ожидает unsigned int
и имеет неопределенное поведение .Код может «работать», если размер указателя такой же, как размер int
, но не если они отличаются.
Я предлагаю вам использовать правильный спецификатор формата
printf("Data1: %p", (void*)par);
// . . .
printf("Data2: %p, %p", (void*)*pbAdr1, (void*)*pbAdr2 );