问题标签 [memcmp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 我们将 -1 作为 strncmp() 中第三个参数的值传递,即。n 要比较的字节数?
我有三个问题,
- 我们将 -1 作为 strncmp() 中第三个参数的值传递,即。n 要比较的字节数?
- 为什么ARM和PPC的输出不同?IE。如果哪一个正确?
如果我使用 memcmp 而不是 strncmp,我会在 ARM 和 PPC 中获得“inside else”输出。如何以及为什么?
/li>
以 ppc 输出
手臂输出
glibc - 将第三个参数作为 -1 传递给 memcmp 返回 0
对于 memecmp(),第三个参数是 size_t(unsigned)。但是当我们将第三个参数作为 -1 传递时总是返回 0,即使第一个和第二个参数指向的内存块不同?
performance - 在内存中搜索字符串时出现性能问题
我在 Win32 下开发 DLL,它做了一个简单的工作:它扫描主机的虚拟内存中的子字符串。但由于某种原因,与使用单线程扫描的 Cheat Engine、ArtMoney 甚至 OllyDbg 相比,它的运行速度非常慢。这是我使用 VirtualQuery() 获得的扫描单个内存部分的函数的代码。主机(.exe 应用程序)提交大约 300-400 MiB 的内存,我必须扫描大约 170 个不同大小的内存部分,从 4KiB 到 32MiB。我只扫描 MEM_PRIVATE、MEM_COMMIT 区域,不扫描 PAGE_GUARD、PAGE_NOACCESS、PAGE_READONLY,跳过 DLL 自己的内存。
出于某种原因,性能很糟糕 - 找到单个字符串需要 10-12 秒。例如 OllyDbg 在 ~2-3 秒内找到字符串。
我正在使用 MSVS 2010。
编译器命令行:
链接器命令行:
我究竟做错了什么?我的算法是坏的还是其他内存扫描仪使用了某种“魔法”?
c - 在 C 中使用 memcmp 比较结构的一部分
我有 2 个相同类型的结构并想比较它们。结构的大小是 420 字节,我想在比较时跳过前 2 个字节,因为我知道它们永远不会匹配。我正在使用 memcmp 如下:
比较的结果给了我随机值。我假设当我通过“&f1.x”和“&f2.x”时,我跳过了前两个字节,比较剩余的 418 个字节。这个假设正确吗?
c# - C# 中 PInvoke 的 memcmp 不适用于大于 4x4 的数组
PINkove 部分取自一些 SO 答案(抱歉,我丢失了原始链接)。
下面是完整的程序。输出是false
。
如果我将数组的大小更改为 4x4,则输出变为true
为什么 memcmp 会这样?
c - 为什么负数大于正数?
我使我的冒泡排序程序通用。我继续测试它,它运行良好,直到我在数组中放置了一个负数,我很惊讶它被推到最后,使它大于正数。
显然memcmp
是这个原因,那么为什么memcmp()
认为负数大于正数呢?
编辑:
那么,如何修改程序以使其正确比较?
c++ - memcmp 链接器错误 Visual Studio 2015
我有一个 Visual Studio 2012 C++ 项目。我最近卸载了它并安装了 Visual Studio 2015 并升级了项目。当我构建项目时,出现如下所示的错误:
函数中引用的错误 LNK2019 未解析的外部符号 _memcmp
此外,我的代码 memcmp 功能中没有使用过任何地方。
我使用了链接器详细函数,可以在输出文件中看到以下内容:
找到_memcmp
在 MyC++Project.obj 中引用
在 libcpmtd.lib(xstrcoll.obj) 中引用
加载 libvcruntimed.lib(__memcmp_.obj)
这里有两个问题
1.即使我没有在我的代码中使用 memcmp,为什么我会收到链接器错误?
2.为什么memcmp被加载为__memcmp_.obj
我的项目中也有以下设置:
1.C++-->代码生成-->运行库设置为/MTd
2.Linker-->Ignore All default library设置为nothing
我已经尝试了所有的项目设置,但一切都是徒劳的。
我只有这个我没有使用过的 memcmp 函数有问题。
我使用过 mamcpy 和 memset 并且没有这些问题
c - 如何使用strchr在c中获取子字符串
我正在尝试获取字符串的一部分。
我有以下代码:
问题是获取第二个单词并将其存储在 word2 中。为此,我尝试使用strchr
来定位空间。但是我第二次使用strchr
我需要一个偏移量来找到第二个空间。我尝试了以下方法:
变量b
和e
应该包含空格字符在mystring
. 最终word2
应该包含。
另一种解决方案是使用循环“遍历”字符串,但这会欺骗函数。quick
strchr
c - memcmp 上的分段错误
问题出现在注释行上。如果“el”存在于“x”数组中,该函数返回 1。这是一个简单的,但我不明白为什么它是一个段错误。
assembly - 我在哪里可以找到 memcmp 的输入值(在用于逆向工程的 ARM 程序集中)?
首先,对不起,如果我的英语不好,那不是我的自然语言。
我还没有逆向工程的经验。所以,我对我在大学里关于这个话题的第一个任务感到很困惑。
任务是找到二进制文件的密码。该程序要求用户输入,对其进行转换并将该输入与硬编码值进行比较(我不知道它的长度)。我试图找到这个值。
我敢肯定,我找到了比较值的 memcmp 命令。我知道 memcmp 将这些值作为输入参数获取,但我不知道从哪里来。(堆栈或显式寄存器......)
这是进入 memcmp 之前的一段代码:
我非常感谢任何帮助。