问题标签 [memset]

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 投票
4 回答
11164 浏览

c++ - 用于长(64 位)类型的 C++ memset()

可能重复:
是否有 memset() 接受大于 char 的整数?

从 memset 的声明中可以看出:

有没有办法使用这个 memset 函数(或 STL 库中包含的另一个函数),以便您可以将内存设置为long long类型值?

我用它来初始化一个具有大值的 long long 数组。

我不得不说我已经通过简单地遍历数组的每个值并将其设置为所需的值来“解决”这个问题。

0 投票
4 回答
6361 浏览

c - 使用 memset 和 malloc 会冲突吗?

我认为memset初始化buf变量的大小为BUFSIZ,但是malloc也分配了一块大小为BUFSIZE的内存,并返回一个指向该块开头的指针给变量buf……不知道memset能不能用用于指针,因为它使用大小 BUFSIZE 初始化数据,但我们不指向它....您能提出任何解决此问题的建议吗,谢谢


大家好,感谢您的回答。所以我明白问题通常来自这样一个事实,即 malloc 可能会失败,然后 buf 将指向 NULL。也许修复代码缺陷的最好方法是检查 buf 是否等于 null?


也许修复代码缺陷的最好方法是检查 buf 是否等于 null?

在实践中 malloc 是否有可能失败?或者它只是一个理论?

0 投票
2 回答
548 浏览

c - C Memset 输出

我想memset将每个字节设置p0. 看到什么都没有打印出来,我有点惊讶。到底是为了memset什么?

0 投票
1 回答
574 浏览

memset - memset() 行为异常

我在 C 中使用 memset 函数并遇到问题。这是我的问题:

当我像这样调用 memset 时:

当我像这样调用 memset 时:

当我像这样调用 memset 时:

这可能是什么原因?该程序运行并根据需要提供输出,但最终会出现分段错误。我正在使用 Linux 64 虚拟机。

任何帮助,将不胜感激。

好的。让我更清楚地说明我在做什么。我正在制作 128 个字节(数组中的 0-127)数据。我从字节 112 到 119 写入 0(NULL)(它运行良好)但是当我尝试在第 120 个字节上写入 0 并运行程序时,它进入无限循环。如果我在第 120 个字节写 1,2,4,6,程序运行良好。如果我在第 120 个字节写入其他数字,程序会出现分段错误。基本上从 120 到 127 的字节有问题。

0 投票
6 回答
9539 浏览

c - 在 C 中使用 memset() 有什么好处

我很好奇在类似于以下情况的情况下使用 memset() 在效率方面是否有任何优势。

鉴于以下缓冲区声明...

除了减少代码行之外,使用它还有一个优势:

在此:

0 投票
3 回答
1644 浏览

c - 是否保证 memset 会将结构中的填充位清零?

一般来说,根据 C 标准,是否保证带有 0 的 memset() 会将 C 结构中的填充位清零?

gcc呢?

例如,类似:

0 投票
3 回答
11002 浏览

c - 如果大小为 0,是否可以使用空指针调用 memset()?

出于某种原因,我想手动滚动一个归零版本的malloc(). 为了最小化算法复杂性,我想写:

这是什么时候定义好的size == 0?使用零大小调用很好malloc(),但这允许它返回一个空指针。随后的调用是否memset可以,或者这是未定义的行为,我需要添加一个条件if (size)

我非常想避免多余的条件检查!

暂时假设malloc()不会失败。实际上,那里也会有一个手卷版本malloc(),它会在失败时终止。

像这样的东西:

0 投票
2 回答
1682 浏览

c++ - 将现有数组归零的最快方法是什么?

我有一个现有的一维数组,是memset最快的归零方法吗?

0 投票
2 回答
2331 浏览

c++ - memset 导致 std::string 分配崩溃

我有在 Windows 上工作的代码,但现在我使用 Xcode 3.2.5 C/C++ 编译器版本 GCC 4.2 移植到 MAC,它崩溃了。

我已将其范围缩小到 memset 调用。如果我注释掉 memset 它可以工作,如果我把它放回代码崩溃中。

我的头文件中有一个如下所示的结构:

然后在一个cpp文件中我有这个:

...后来我有这个:

就像我之前说的,如果我删除 memset 调用一切正常。如果我在调用 memset 之前查看调试器,我的结构中的字符串是 \0 并且在 memset 之后它们是 nil。

为什么 nil 字符串会在分配行上崩溃并且只在 MAC 上?

谢谢。

0 投票
1 回答
194 浏览

c++ - 为遗传算法分配和检索按位内存值

我遇到了为 GA/GP 开发类的代码,但未能理解它,因此无法调试程序。

以上是直截了当的。然后我们尝试在测试它们的适应性等之前启动有机体......

据我了解,memset() 尝试将二进制值写入该内存位置 void 指针(newOrgDna.dataPointer)等等。但是我不知道如何重新组装所有这些二进制值以获得分配给 newOrg 变量“dna”的整数值,以便我检查分配给单个生物体的整数值,并最终检查整个内存位置中的整个种群被分配到“组织”。

正如您从上面猜测的那样,我对这种深层细节的内存管理不是很熟悉,因此非常感谢您的帮助。

太感谢了