という本当に奇妙な現象に直面しています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 バイトで、は 1389です。以前に割り当てられたように、オフセットはまだ 2000000000 から離れているdataCount
はずです。dataMem + 1666800
私はこれについて本当に混乱していて、手がかりがありません。