我正面临着一个非常奇怪的现象memcpy
。memcpy
我已经分配了一个 2GB 大小的数据指针,但是当我的指针偏移量超过 1666800 字节时,我似乎无法做到这一点。这是代码
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,如之前分配的那样。
我真的对此感到困惑并且不知道。