char *sBuffer=new char[20];
char * sStringStart = sBuffer;
long * plMsgStart = (long *) sBuffer;// what is this line doing
long i=500;
*plMsgStart = i // what is this line doing
最後の行は char 配列に 500 を割り当てていますか? しかし、配列を印刷すると、ガベージ値が取得されます
以下は実際のコードで、コードを C++ から C# に変換しているときに遭遇しました。このコードは C++ 関数の一部ですが、なぜ以下の関数がガベージ値を与えるのですか?
char *sBuffer=new char[20];
char * sStringStart = sBuffer;
BSTR bsMsgBody= SysAllocString(L"Helo");
sStringStart+=4;
long * plMsgStart = (long *) sBuffer;
long l=50;
*plMsgStart=l;
sprintf(sStringStart, "%S", bsMsgBody);
printf("%S",sBuffer);