私はコードを持っています:
unsigned char *myArray = new unsigned char[40000];
char pixelInfo[3];
int c = 0;
while(!reader.eof()) //reader is a ifstream open to a BMP file
{
reader.read(pixelInfo, 3);
myArray[c] = (unsigned char)pixelInfo[0];
myArray[c + 1] = (unsigned char)pixelInfo[1];
myArray[c + 2] = (unsigned char)pixelInfo[2];
c += 3;
}
reader.close();
delete[] myArray; //I get HEAP CORRUPTION here
いくつかのテストの後、while ループのキャストが原因であることがわかりました。signed char myArrayを使用するとエラーは発生しませんが、残りのコードでは unsigned char を使用する必要があります。pixelInfo を unsigned char にキャストすると、同じエラーが発生します。
これに対する解決策はありますか?