问题标签 [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.

0 投票
6 回答
7341 浏览

java - 相当于Java中的memcmp()?

如果我有两个byte[]数组,是否有一个内置函数来比较它们 ala C 的memcmp()

0 投票
4 回答
7317 浏览

c++ - 在 C++ 中的结构上使用 memset

我正在为我的工作修复旧代码。它目前是用 C++ 编写的。他们将静态分配转换为动态分配,但没有编辑 memset/memcmp/memcpy。这是我的第一次编程实习,我的新手问题如此简单。

以下代码是用 C 编写的,但我想在 C++ 中使用它(我读到 malloc 在 C++ 中不是很好的做法)。我有两个场景:首先,我们创建了 f。然后你使用 &f 来填充零。第二个是指针*pf。我不确定如何将 pf 设置为全 0,就像 C++ 中的前一个示例一样。

你可以做pf = new foo而不是 malloc 然后打电话memset(pf, 0, sizeof(foo))吗?

0 投票
5 回答
10092 浏览

c# - 如何在 byte[] 的两个部分(带偏移量)上调用 memcmp()?

我想有效地比较部分byte[]- 所以我理解memcmp()应该使用。

我知道我可以使用 PInvoke 来调用memcmp()-在 .NET 中比较两个字节数组

但是,我只想比较部分byte[]- 使用偏移量,并且没有memcmp()使用偏移量,因为它使用指针。

我应该使用 C++/CLI 来做到这一点吗?

我应该将 PInvoke 与 IntPtr 一起使用吗?如何?

谢谢你。

0 投票
3 回答
845 浏览

java - 如何使用 JNI 从 Java 调用 MEMCMP

我需要比较 2 字节数组并知道哪个更大或者它们是否相等(仅相等或不同是不够的)。字节数组表示 15 个或更多字符的字符串值。这种比较在我的代码中重复了很多。

我想通过在 Java 中使用等效的 C++ memcmp 方法(希望通过 JNI)来改进再见数组比较。我找到了一个在 C# 中使用 DLLImport 的示例,所以我希望也可以应用 JNI 调用。

这是 C# 代码段:

有谁知道如何在Java中实现这个?

提前致谢,

戴安娜

0 投票
1 回答
1910 浏览

c - memcmp 中出现意外的段错误

以下简单的程序段错误对我来说:

调试器显示段错误在 memcmp 中。

我的机器运行的是 64 位 Ubuntu 8.04,gcc 版本是 4.2.4。

它在我尝试过的其他机器(32 位或 64 位)上运行良好。

关于发生了什么的任何想法?

更新:这是汇编代码:

更新:(这应该是评论,但不适合 600 个字符)。当我尝试sudo apt-get install libc6时,我得到:

最后,如果我尝试这样做sudo apt-get -f install,我会得到:

显然,我没有输入“是的,照我说的做!”。似乎有些事情真的搞砸了......知道如何解决它吗?

0 投票
3 回答
2327 浏览

c++ - C++ is_trivially_copyable 检查

如何检查 C++ 类型是否可以轻松复制?我有一个类,它使用具有指定模板类型 T 的 memcpy 和 memcmp 函数,我想为类型触发断言,使用 memcpy 复制这些类型是不安全的。有没有办法做到这一点(使用现有标准)?

0 投票
8 回答
7504 浏览

c++ - 实现 memcmp

以下是 memcmp 的 Microsoft CRT 实现:

它基本上执行逐字节比较。

我的问题分为两部分:

  1. 是否有任何理由不将其更改为 int by int 比较 until count < sizeof(int),然后对剩余的内容进行逐字节比较?
  2. 如果我要做 1,是否有任何潜在/明显的问题?

注意:我根本没有使用CRT,所以无论如何我必须实现这个功能。我只是在寻找有关如何正确实施它的建议。

0 投票
3 回答
183 浏览

c++ - 可变长度字符串内容的非递归检查

我有一个函数,它需要一个可变长度的 char* 和长度。我想检查它的内容是否都是空格。

它是一个可变长度,意味着我不能使用 memcmp,因为我不知道制作第二个参数需要多长时间。

有什么想法可以通过一种简洁的方式来检查它,而无需遍历字符串的每个字符?

0 投票
2 回答
2769 浏览

glibc - STORAGE_ERROR 的 Ada 问题

我有一个让我在 RHEL6 上头疼的小功能,我不确定发生了什么……而且调试起来很痛苦。当我运行它时,我得到了一个 STORAGE_ERROR,所以我做了一个 gstack 来查看程序挂在哪里(见下文)。尽管我不确定它在哪里/如何被调用,但它看起来像是 memcmp 的一个问题。有什么解决方法的想法吗?

当我将此函数更改为仅返回“true”时,它似乎工作正常(STORAGE_ERROR 消失),所以我认为问题出在这部分的一些逻辑上: (Ada.Characters.Handling.To_Upper(EPS_List(1).全部)=“本地主机”);

开始编辑***

另一种可行的方法是这样做(将其移出函数范围......为什么会这样?):

结束编辑***

进程的gstack输出:

相关类型/功能:

0 投票
1 回答
2073 浏览

c - memcmp 比较数组的段(删除重复项)

我已经研究了一段时间(在 C 中)并且无法弄清楚。我有一个包含字符数组的缓冲区。我已经使用 qsort 对数组进行排序,现在一切都井井有条。我现在需要删除重复项(或者只是打印出没有重复项的列表)。有一个警告:字符被分组为 N 个字符组(N 由用户给出)。因此,这不仅仅是将一个字符与另一个字符进行比较;它正在将它们的组相互比较。

例如:如果输入是 AADDBBEECCEE 并且用户给出的 N 是 2,则结果将是 AABBCCDDEE(删除了 EE 之一)。

我知道我必须使用 memcmp,但我对语法感到困惑。我正在努力:

其中 buffer 是数组,nValue 是 N,bufferSize 是数组中元素的总数。运行代码时,我不断收到分段错误。

谢谢大家的帮助!