char*とunsignedの変換

char* と unsigned の間の変換は長い間成功していませんでしたが、最後の必須の型変換は成功しました

char *tem = 新しい char[4];

unsigned* ret =(unsigned*)tem;//このように変換する必要があります。unsigned ret = unsigned(*tem) は実際には間違っています。誰が答えてくれるのかわかりません。

さらに、c では文字列と文字配列には違いがあります。http://c.biancheng.net/view/337.html を参照してください。

少し経験を追加します。

template<class T>
void put_val(std::string& buf, T val) {     buf.append((unsigned char*)&val, (unsigned char*)&val + sizeof(T)); }

   std::string b3dm_buf;
    b3dm_buf += "b3dm";
    cout << "b3dm_buf length:"<<b3dm_buf.length() << endl;
    int バージョン = 1;
    put_val(b3dm_buf, バージョン);

上記の append() 関数の 2 つのパラメータは unsigned char* の最初と最後のアドレスで、put_val はまず T 型を unsigned char* 型に変換してから buf に文字を追加します。
---------- 
著者:青少年の無知 123 
出典:CSDN 原文
:https://blog.csdn.net/sinat_34816302/article/details/84544345 

おすすめ

転載: blog.csdn.net/sinat_34816302/article/details/84553436