C
Möglichkeit 1 - nimm einen vector (mit anderen Containern klappt's analog:
vector<BYTE> TH200COM::PackASCII(CString String, int StringLength)
{
...//den eigentlichen Funktionsrumpf kannst du normal übernehmen
return vector<BYTE>(PackedASCII,PackedASCII+24);
}
vector<BYTE> TAG=PackASCII(MyApp->GetView()->GetVarTAG(), 8);
vector<BYTE> Descriptor=PackASCII(MyApp->GetView()->GetVarDescriptor(), 12);
Möglichkeit 2 - lass dir vom Aufrufer Speicher bereitstellen:
void TH200COM::PackASCII(CString String,int StringLength,BYTE* PackedASCII)
{
BYTE BinaryValue[32][8], Packed[24][8] /*fällt weg:, PackedASCII[24]*/;
...//Rest wie gehabt
return;
}
BYTE TAG[24],Desprictor[24];
PackASCII(MyApp->GetView()->GetVarTAG(),8,TAG);
PackASCII(MyApp->GetView()->GetVarDescriptor(),12,Descriptor);
Alternativ könntest du die Variable PackedASCII auch static deklarieren und nach jedem Funktionsaufruf in ein eigenes Array kopieren oder dynamisch per new Speicher anfordern (den muß dein Hauptprogramm freigeben, wenn er nicht mehr gebraucht wird).