gpt4 book ai didi

c - malloc 内存上的 memcpy 运行不佳

转载 作者:行者123 更新时间:2023-11-30 17:56:03 30 4
gpt4 key购买 nike

我面临着一个非常奇怪的memcpy 现象。我已经分配了一个 2GB 大小的数据指针,但是当我到指针的偏移量超过 1666800 字节时,我似乎无法执行 memcpy 。这是代码

dataMem = (struct dataRecord*) malloc(memsize * 1000000); // where memsize is 2000

... loop condition ...
{
memcpy(dataMem + (dataCount * sizeof(struct dataRecord)), mesg, sizeof(struct dataRecord));
dataCount++;
}

其中sizeof(struct dataRecord)是1200字节,dataCount是1389。它应该是dataMem + 1666800和偏移量距离之前分配的 2000000000 还很远。

我对此真的很困惑,没有任何线索。

最佳答案

所以我修改了代码并摆脱了 malloc 转换。

void *dataMem;
dataMem = malloc(memsize * 1000000);

看来memcpy现在工作正常。但为什么我们不能强制转换malloc

关于c - malloc 内存上的 memcpy 运行不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13832292/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com