我不知道爲什麼這是行不通的。從我可以告訴,它似乎並沒有讀取整個圖像文件...雖然我不知道。我基本上有一些原始的圖像,我想讀到堆上。閱讀整個std :: ifstream堆
unsigned char* ReadImageFromFile(const char* FILENAME, unsigned int SIZE_BYTES)
{
unsigned char *data = (unsigned char*) malloc(SIZE_BYTES);
std::ifstream image(FILENAME);
image.read((char*) data, SIZE_BYTES);
image.close();
return data;
}
停止混合C與C++,它將工作。 – Griwes
首先,如果你使用C++,請不要使用malloc(),我們有新的。這就是說,檢查image.read的返回值 - 它是否返回SIZE_BYTES或更少?如果您正在讀取原始數據,則可能需要以二進制模式打開文件。 – Alex1985
@ Alex1985,不,我們有比「新」更好的原語。我們有容器,我們有聰明的指針 - 「新」幾乎從來不是答案。 – Griwes