c#結構體中的結構體數組應該如何定義與初始化賦值(轉)


 

https://bbs.csdn.net/topics/390508323/

 

你可以打印出C++的結構體
我打個比方
C++結構體

 public int X
 public long Y
 public String xxx
 public bool aa

這樣的結構 在內存中
他是 
int 對應的是4個byte
long 對應的是8個byte
string 兩種可能(字符長度+ string->Byte,另一種是 string->byte + \0 這是常見的一種)
bool 1個byte

所以結構變Byte[]就是 4+8+((string->Byte).Length +1) + 1
然后就把這個Byte直接發給C++服務端,就會認的出來了

所以我之前跟你提的先看看C++的結構體轉成Byte是什么樣的打印出來。,int long bool 都是一樣的。
然后由C#自己用Byte組合,結構套結構 在C++里他們內存里的數據都是連繼的會放在一起,C#是引用類型,
所以你得出的數據就不是你要的結果了。

 

所有的char數組都要補齊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM