gpt4 book ai didi

c++ - 可移植内存搜索功能的返回类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:20:44 25 4
gpt4 key购买 nike

我想写一个可移植的内存搜索函数。签名看起来类似于:

return_type FindPattern(uintptr_t start, size_t length, const unsigned char* pattern, const char* mask);

该函数从地址start开始扫描当前进程内存,寻找下一个length字节,并返回与第一个字节序列匹配的第一个字节的地址给定 pattern 和给定的 mask。如果未找到模式,函数应该以某种方式表明这一点,也许通过一个特殊的返回值。主要问题是在某些平台上空指针可能不等于 0。

哪种返回类型最适合此任务以及如何指示未找到模式?

最佳答案

在 C++ 中,一个范围通常由一对迭代器表示:[begin, end) 并且通常是findsearchmismatch 等...将返回 end 以表示不存在匹配。

因此,我建议简单地跟随那些脚步,因为它会立即使您自己的函数对 C++ 用户来说看起来很熟悉。

也就是说,如果您坚持使用空指针,那么使用 0nullptr(C++11 及更高版本)是可移植的;编译器将文字 0 翻译成适合目标平台的任何内容。

关于c++ - 可移植内存搜索功能的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737710/

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