在 Intel CPU 和 Arm CPU 中,用户空间的指针地址默认都只使用低 48 位,高16 位总是 0。
写一小段代码验证下:
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
void o(long long ptr)
{
printf("%016p: ", (void *)ptr);
for (
在 Intel CPU 和 Arm CPU 中,用户空间的指针地址默认都只使用低 48 位,高16 位总是 0。
写一小段代码验证下:
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
void o(long long ptr)
{
printf("%016p: ", (void *)ptr);
for (