gpt4 book ai didi

c - 如何检查指针是否在分配的内存中写入?

转载 作者:行者123 更新时间:2023-12-01 13:44:41 24 4
gpt4 key购买 nike

我在与面试官讨论时遇到这个问题:

如果我从 malloc 分配了 4 个字节的内存。

int *p = (int*) malloc(4);

现在如果我将指针移动 4 个字节。

p++;

现在指针指向的内存超出了 malloc 分配的 4 字节内存。假设此内存具有读写权限。

*p=4; 

这意味着指针将超出分配的内存。

现在考虑这样一种情况,我分配了一些内存,但每当我的指针移出分配并写入该内存时,我想得到通知,但如何通知??

我只有 malloc 并且可以免费使用。

最佳答案

有一个图书馆叫做 Electric Fence 这就是你想要的。

它会拦截您的 malloc 调用。它通过分配内存页面并将页面边界恰好放在分配的内存末尾来工作。分配后的页面内存未映射。如果程序试图写入超过分配的内存,则会生成 SIGSEGV(段错误)。

关于c - 如何检查指针是否在分配的内存中写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36863870/

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