Re: Returning Char array/pointer? Continuing of thread I am confused
with these concepts.
I am doing a small testing on this topic.
------------------------------
char* myByte;
long lngSize = 0;
lngSizeR = CMyUtil::ReadFile2ByteArray2("myFile",myByte);
CMyUtil::WriteByteArray2File2(myByte,lngSize, "myFile2");
delete[] myByteR;
-----------------------------------
I got an error when calling WriteByteArray2File2, myByte pointed to a
invalid pointer oxffffffff. and the error is
Access violation reading location 0xffffffff.
Any explaination, expecially somebody who answered my previous thread,
you may understand why ai am stick on this topic.
--------------------------------------------------------
void WriteByteArray2File(const char* aSrcArr, long aSize, char const*
aDestFile){
ofstream out(aDestFile, ios::binary);
if(!out)
throw exception("Could not open output file" );
out.write(aSrcArr, aSize);
out.close();
}
long ReadFile2ByteArray2(char const* aSrcFile, char* aDestArr){
long lngFileSize = 0;
int intBeenRead = 0;
ifstream in;
in.open(aSrcFile, ios::in| ios::binary | ios::ate);
if(in.is_open()||in.bad())
{
lngFileSize = in.tellg();
}else{
throw exception("could not open input file"); // could not open in
file
return 0;
}
aDestArr = new char[lngFileSize+1];
in.seekg(0,ios::beg);
in.read(aDestArr, lngFileSize);
aDestArr[lngFileSize] = '\0';
in.close();
return lngFileSize;
}
----------------------------------------