あるメソッドから別のメソッドにunsignedchar配列を渡す必要があり、次のコードを使用してみました。
{
     unsigned char *lpBuffer = new unsigned char[182];
 ReceiveSystemState(lpBuffer);
}
BOOL ReceiveSystemState(unsigned char *lpBuffer)
  {
      unsigned char strRecvBuffer[182] = { 0 };
      //strRecvBuffer construction
      memcpy(lpBuffer, strRecvBuffer, sizeof(strRecvBuffer));
      return TRUE;
 }
これらの3つの方法(で使用ReceiveSystemState)はどちらも期待どおりに機能しませんでした。それらのそれぞれを使用した後、それがコピーされるのは最初の文字でstrRecvBufferあり、それ以上のものではありません。にはstrRecvBuffer要素ごとに空の文字がありますが、その文字列はハードウェアデバイスからのメッセージであり、そのメッセージはプロトコルを使用して分析されるため、そのまま必要です。ここで何が恋しいですか?初期化lpBufferが間違っていますか?
編集:私はmemcpy仕事をするために簡単な方法を使用しました。それでも同じ結果です。コピーされるのは、の最初の文字だけですstrRecvBuffer。
EDIT2:作業コード:
{
     unsigned char *lpBuffer = new unsigned char[182];
     ReceiveSystemState(lpBuffer);
     for (int i = 0; i < 144; i++)
     {
         memcpy(&c_dateKG[i], lpBuffer + i * sizeof(unsigned char), sizeof(unsigned char) );
     }
}    
  BOOL ReceiveSystemState(unsigned char *lpBuffer)
  {
     unsigned char strRecvBuffer[182] = { 0 };
     //strRecvBuffer construction
     memcpy(lpBuffer, strRecvBuffer, sizeof(strRecvBuffer));
     return TRUE;
  }