gpt4 book ai didi

检查两个指针​​是否在同一 block 内存中

转载 作者:行者123 更新时间:2023-11-30 17:50:08 25 4
gpt4 key购买 nike

这是一个家庭作业问题,我很困惑如何解决。还有一些限制,我不能使用/、% 或任何循环。给定一个方法,它接受两个 int 类型的指针。对于这两个指针,我需要找出它们是在同一 block 内存中还是在不同的内存块中。如果情况一,我返回 1,因为它们在同一个 block 中,否则返回 0。所以我的想法是,如果两个指针位于同一内存块中,那一定意味着它们指向同一个整数?我不确定这是否正确,任何正确方向的提示将不胜感激。

谢谢

最佳答案

弗洛里斯基本上给了你这个想法;这是我对 POSIX 的实际实现:

uintptr_t pagesz = getpagesize();
uintptr_t addr_one = (uintptr_t)ptr1;
uintptr_t addr_two = (uintptr_t)ptr2;

bool in_same_page = (addr_one & ~(pagesz - 1)) == (addr_two & ~(pagesz - 1));

关于检查两个指针​​是否在同一 block 内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com