问题标签 [memcpy]

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

c++ - memcpy() 随机崩溃

我在我的应用程序中使用 memcpy。memcpy 随机崩溃,下面是我在 Dr.Watson 文件中获得的日志。

下面是代码

在哪里:

  • dep 是一个结构
  • EntryRec 是一个字符指针
  • adp是一个结构
  • 数据不在NULL这种情况下

有没有人遇到过这个问题并且可以帮助我?

我试图调试 prog,然后我收到以下错误 Prog.exe(MSVCRTD.DLL) 中的未处理异常:0xC0000005: Access voilation

数据被传递给这个程序的参数,这是无效的*

更多信息:

我试图调试代码适配器在以下区域崩溃此函数存在于 OUTPUT.c 中(我认为这是一个库函数)

变量值:p=“”(未初始化)i=2147483598

0 投票
3 回答
2650 浏览

c - C 内联汇编内存拷贝

我正在尝试将一些内联程序集写入C。我有两个数组作为输入,我需要将array1中的一个元素复制到array2中,以下是我目前拥有的:

为什么会出现分段错误?

0 投票
1 回答
1180 浏览

cuda - CUDA 主机到设备(或设备到主机)memcpy 操作与应用程序在同一显卡上使用 OpenGL 渲染图形

我已经在 CUDA 论坛上发布了我的问题,但不确定是否适合在此处发布链接以获得更多想法,以防两个论坛之间存在大量不同的受众。链接在这里。对于给您带来的任何不便,我深表歉意,并感谢对此问题的任何评论,因为我还没有收到有关特定 CUDA 内存访问和管理问题的一些细节的回复。提前致谢。

0 投票
7 回答
41348 浏览

c - 用于图像处理的非常快的 memcpy?

我正在用 C 语言进行图像处理,这需要在内存周围复制大量数据——源和目标永远不会重叠。

使用GCC在 x86 平台上执行此操作的绝对最快方法是什么(其中SSE、 SSE2 但不是 SSE3 可用)?

我希望解决方案是汇编还是使用 GCC 内在函数?

我找到了以下链接,但不知道这是否是最好的方法(作者还说它有一些错误):http://coding.derkeiler.com/Archive/Assembler/comp.lang.asm。 x86/2006-02/msg00123.html

编辑:请注意,副本是必要的,我无法避免不得不复制数据(我可以解释原因,但我会省去你的解释 :))

0 投票
15 回答
4011 浏览

c - C memcpy() 一个函数

有什么方法可以计算函数的大小吗?我有一个指向函数的指针,我必须使用 memcpy 复制整个函数。我必须分配一些空间并知道 memcpy 的第三个参数 - 大小。我知道那 sizeof(function)行不通。你有什么建议吗?

0 投票
4 回答
6010 浏览

c - C: 深拷贝 - 带有 void 指针的结构

我有一个以下结构

是否可以对包含 void 指针的结构进行深层复制?我假设我不知道data指针指向多少字节?所以我不能 malloc 指定的字节数并做 memcpy。我对吗?

0 投票
1 回答
334 浏览

c++ - 新的没有分配足够的内存?

好吧,我直接从网络中取出数据包并从中提取 TCP 流。

简而言之,这意味着剥离各种标头(例如,eth->IP->TCP->stream 数据)。

在我最终通过所有标题时调用的函数中,我遇到了一个奇怪的错误。

TCP流只是一个u_int32_t和一个u_char*指向数据包数据的副本。所以,当我使用 memcpy 时,它出现了段错误。
显然,要么我的指针无效,要么我弄乱了我的长度。

在这个特定数据包的情况下,数据的长度是 1380 字节(由 Wireshark 确认),因此 len 计算正确。

好的,所以我必须弄乱我的指针(但不是 NULL)。我做了以下实验:

所以,当我对 streamData 的引用太远(具体索引为 1236)时,我会出现段错误!但是 streamData 被实例化为:

我从 i=0 开始迭代 streamData,所以我没有跳过一堆数据。streamData 是u_char*并且offset(pkt)u_char*所以我不会弄乱我的类型。

在成功迭代 3000 多个其他数据包后,这在特定数据包上失败。转储文件是 27 megs,我有 4 gigs 的 ram,所以我认为我没有用完或任何东西......所以我不得不得出结论 new 没有分配足够的内存,但为什么?

0 投票
6 回答
7693 浏览

c++ - 整数中的每个字节如何存储在 CPU / 内存中?

我试过这个

输出就像:
89
0
0
0

这很好地训练了我的胃,因为我认为这个数字会像 0x00000059 这样保存在内存中,那么 c[0] 怎么会是 89 呢?我认为它应该在 c[3] 中...

0 投票
4 回答
2435 浏览

c - 如何将 c 中的 char[] 复制到我的结构中

我正在尝试通过 UDP 套接字发送我的结构。

结构数据包 { int seqnum; 字符数据[缓冲区大小];};

所以在我的发件人上

所以我希望将我的结构复制到 Char[] 中。

在接收器上我有

但是在接收器上使用memcpy((void *) currentpkt, (void *) recv, bytes); 我收到一个错误:

错误:无法转换为指针类型

我究竟做错了什么?有没有更好的方法通过 UDP 套接字发送我的结构?

***** 更新 *****

谢谢大家的回答。最后我错过了'&',但我的代码现在看起来像这样。

发件人:

接收者:

在 C 中,我们可以将其转换为 char 并发送字节,这很好。

0 投票
2 回答
3595 浏览

c - 使用 memcpy C 帮助在缓冲区之间进行复制

我需要将一个缓冲区的内容以n字节块(n可能会有所不同)复制到另一个缓冲区,多次检查缓存性能。

我使用 memcpy,但恐怕我没有得到成功的结果。块大小从几千字节到几兆字节不等。而且我必须保留要使用的最大块(长双)。

我有点迷失在副本中。我只是想知道是否有人遇到过这个问题,并且可以帮助我提供一些提示或伪代码。

我编辑主题以包含一些代码:

这个想法是从缓冲区1复制到缓冲区2,在datos块'p'次中,在这种情况下应该完成256000次(i = 1,datos = 1024)。