问题标签 [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.
c++ - memcpy() 随机崩溃
我在我的应用程序中使用 memcpy。memcpy 随机崩溃,下面是我在 Dr.Watson 文件中获得的日志。
下面是代码
在哪里:
- dep 是一个结构
- EntryRec 是一个字符指针
- adp是一个结构
- 数据不在
NULL
这种情况下
有没有人遇到过这个问题并且可以帮助我?
我试图调试 prog,然后我收到以下错误 Prog.exe(MSVCRTD.DLL) 中的未处理异常:0xC0000005: Access voilation
数据被传递给这个程序的参数,这是无效的*
更多信息:
我试图调试代码适配器在以下区域崩溃此函数存在于 OUTPUT.c 中(我认为这是一个库函数)
变量值:p=“”(未初始化)i=2147483598
c - C 内联汇编内存拷贝
我正在尝试将一些内联程序集写入C。我有两个数组作为输入,我需要将array1中的一个元素复制到array2中,以下是我目前拥有的:
为什么会出现分段错误?
cuda - CUDA 主机到设备(或设备到主机)memcpy 操作与应用程序在同一显卡上使用 OpenGL 渲染图形
我已经在 CUDA 论坛上发布了我的问题,但不确定是否适合在此处发布链接以获得更多想法,以防两个论坛之间存在大量不同的受众。链接在这里。对于给您带来的任何不便,我深表歉意,并感谢对此问题的任何评论,因为我还没有收到有关特定 CUDA 内存访问和管理问题的一些细节的回复。提前致谢。
c - 用于图像处理的非常快的 memcpy?
我正在用 C 语言进行图像处理,这需要在内存周围复制大量数据——源和目标永远不会重叠。
使用GCC在 x86 平台上执行此操作的绝对最快方法是什么(其中SSE、 SSE2 但不是 SSE3 可用)?
我希望解决方案是汇编还是使用 GCC 内在函数?
我找到了以下链接,但不知道这是否是最好的方法(作者还说它有一些错误):http://coding.derkeiler.com/Archive/Assembler/comp.lang.asm。 x86/2006-02/msg00123.html
编辑:请注意,副本是必要的,我无法避免不得不复制数据(我可以解释原因,但我会省去你的解释 :))
c - C memcpy() 一个函数
有什么方法可以计算函数的大小吗?我有一个指向函数的指针,我必须使用 memcpy 复制整个函数。我必须分配一些空间并知道 memcpy 的第三个参数 - 大小。我知道那 sizeof(function)
行不通。你有什么建议吗?
c - C: 深拷贝 - 带有 void 指针的结构
我有一个以下结构
是否可以对包含 void 指针的结构进行深层复制?我假设我不知道data
指针指向多少字节?所以我不能 malloc 指定的字节数并做 memcpy。我对吗?
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 没有分配足够的内存,但为什么?
c++ - 整数中的每个字节如何存储在 CPU / 内存中?
我试过这个
输出就像:
89
0
0
0
这很好地训练了我的胃,因为我认为这个数字会像 0x00000059 这样保存在内存中,那么 c[0] 怎么会是 89 呢?我认为它应该在 c[3] 中...
c - 如何将 c 中的 char[] 复制到我的结构中
我正在尝试通过 UDP 套接字发送我的结构。
结构数据包 { int seqnum; 字符数据[缓冲区大小];};
所以在我的发件人上
所以我希望将我的结构复制到 Char[] 中。
在接收器上我有
但是在接收器上使用memcpy((void *) currentpkt, (void *) recv, bytes); 我收到一个错误:
错误:无法转换为指针类型
我究竟做错了什么?有没有更好的方法通过 UDP 套接字发送我的结构?
***** 更新 *****
谢谢大家的回答。最后我错过了'&',但我的代码现在看起来像这样。
发件人:
接收者:
在 C 中,我们可以将其转换为 char 并发送字节,这很好。
c - 使用 memcpy C 帮助在缓冲区之间进行复制
我需要将一个缓冲区的内容以n字节块(n可能会有所不同)复制到另一个缓冲区,多次检查缓存性能。
我使用 memcpy,但恐怕我没有得到成功的结果。块大小从几千字节到几兆字节不等。而且我必须保留要使用的最大块(长双)。
我有点迷失在副本中。我只是想知道是否有人遇到过这个问题,并且可以帮助我提供一些提示或伪代码。
我编辑主题以包含一些代码:
这个想法是从缓冲区1复制到缓冲区2,在datos块'p'次中,在这种情况下应该完成256000次(i = 1,datos = 1024)。