short
、int
、 、およびからまたはlong long
までの生データを追加したい。byte
bool
char*
void*
これが私が思いついたものです:
template <typename T>
static void memcopyToBytestring(T& target, size_t targetSize, char* previeous, size_t previousSize)
{
if (target && targetSize > 0)
{
char newByteString[previousSize + targetSize];
memcpy(newByteString, previeous, previousSize); //copy old
memcpy(newByteString + previousSize, &target, targetSize); //add new
previousSize += targetSize;
previeous = new char[previousSize];
memcpy(previeous, newByteString, previousSize);
}
}
何かがずれているようで、何をどのように正しくテストすればよいかさえわかりません ( のデータを見てくださいtarget
)
ユースケース: 定義済みのプロトコルに従ってデータをシリアライズして、バイトを送信する必要があります。
質問: データを char 配列に正しく追加するにはどうすればよいですか?