我有一個C++中的矢量,我想將它寫入.bin文件。 這個矢量的類型是byte
,字節數可能很大,可能是數百萬。 我這樣做是這樣的:將Bytes寫入.bin文件
if (depthQueue.empty())
return;
FILE* pFiledep;
pFiledep = fopen("depth.bin", "wb");
if (pFiledep == NULL)
return;
byte* depthbuff = (byte*) malloc(depthQueue.size() * 320 * 240 * sizeof(byte));
if(depthbuff)
{
for(int m = 0; m < depthQueue.size(); m++)
{
byte b = depthQueue[m];
depthbuff[m] = b;
}
fwrite(depthbuff, sizeof(byte),
depthQueue.size() * 320 * 240 * sizeof(byte), pFiledep);
fclose(pFiledep);
free(depthbuff);
}
depthQueue
是我的載體,其包含字節,可以說,它的大小爲10萬。
有時候我沒有收到這個錯誤,但是bin文件是空的。
有時我得到堆錯誤。
有時,當我調試這個,似乎malloc不分配空間。 問題與空間有關嗎?
或者是連續內存塊很長,它不能在bin中寫入?
爲什麼你將矢量複製到緩衝區中呢?什麼類型是'depthQueue'? –