Использование дополнительных 16 бит в 64-битных указателях
Я прочитал это64-битная машина на самом деле использует только 48 бит адреса (в частности, ям с использованием Intel Core i7).
Я ожидаю, что дополнительные 16 бит (биты 48-63) не имеют значения для адреса и будут игнорироваться. Но когда я пытаюсь получить доступ к такому адресу, я получил сигнал.EXC_BAD_ACCESS
Мой код:
int *p1 = &val;
int *p2 = (int *)((long)p1 | 1ll