AnsiString __fastcall THDAMainForm::HDAMainFormGetCurrentDate()
{
AnsiString YearMonthDay;
YearMonthDay = TDateTime::CurrentDateTime().DateString();
char* NewDate = new char[9];
NewDate = YearMonthDay.c_str();
char* RealDate = new char[7];
RealDate[0] = NewDate[0];
RealDate[1] = NewDate[1];
RealDate[2] = NewDate[2];
RealDate[3] = NewDate[3];
RealDate[4] = NewDate[5];
RealDate[5] = NewDate[6];
RealDate[6] = NewDate[8];
RealDate[7] = NewDate[9];
AnsiString StringToReturn = (AnsiString)RealDate;
delete []RealDate;
delete []NewDate;
return StringToReturn;
}
När jag kör denna kod som den ser ut ovan, så går den igen kompileringen. Men när jag sedan trycker på knappen som exekverar koden. Får jag ett exception som säger:
'EAccessViolation at adress 3260995A in module 'CC3260MT.DLL'. Write of address 30303208'
Provade med att flytta 'delete' raderna under return raden:
return StringToReturn;
delete []RealDate;
delete []Newdate;
Då går den igenom kompilering, och programmet fungerar utan någon exception. Men får 2 kompilator varningar som säger 'Unreacheble Code' och 'Function should return a value'
Är det bara kompilatorn som spökar, eller talar den sanning? Hur ska jag göra isåfall för att få bort varningarna? Någon som vet?
Jag änvänder Borland C++ builder 6