Использование дополнительных 16 бит в 64-битных указателях

Я прочитал это64-битная машина на самом деле использует только 48 бит адреса (в частности, ям с использованием Intel Core i7).

Я ожидаю, что дополнительные 16 бит (биты 48-63) не имеют значения для адреса и будут игнорироваться. Но когда я пытаюсь получить доступ к такому адресу, я получил сигнал.EXC_BAD_ACCESS

Мой код:

int *p1 = &val;
int *p2 = (int *)((long)p1 | 1ll

Ответы на вопрос(3)

Ваш ответ на вопрос