data.uData.serverinfo.iemi = pThis->imei;
data.uData.serverinfo.iemi是一个struct类型的 char imei[128];
pThis->imei 是一个private的char [128];在头文件中定义
但是编译的时候就报错
./Core/ServerManager.cpp:145:32: error: invalid array assignment
data.uData.serverinfo.iemi = pThis->imei;
这是什么情况啊
PHP中文网2017-04-17 13:38:53
在c
中data.uData.serverinfo.iemi
和pThis->imei
這兩個參數不是指代數組的,而是代表數組指針,也就是記錄資料儲存在記憶體中的位置的。因為data.uData.serverinfo.iemi
不是一個獨立數組,而是一個結構體中的數組,所以它在內存中的位置是與結構體綁定在一起的,也就是說你不能把一個外部數組的地址直接賦值給它(賦值是無效的,因為即使沒有錯誤,之後的程式還是會存取結構體內的陣列也就是原來數組的內容),所以也造成了你這個錯誤。如果你要複製外部數組的值到結構體中的數組裡,要使用memcpy
函數。如果你只想傳遞位址,那就把這個參數定義成指標。