注意:這不是在標題中帶有該名稱的十億個和一個問題的重複。這與指針和非常奇怪的東西有關,而不是意外的=
而不是==
。「在奇數位置需要作爲賦值左操作數的左值」 - C++
我有一個C++函數,其中有一個void*
參數,稱爲out
。我有這樣一行:
(char*)out=new char[*size];
凡size
在uint32_t*
。編譯器抱怨:
fundemental_bin_types.h:55:32: error: lvalue required as left operand of assignment
什麼是錯?
爲什麼你認爲你需要在這裏鑄('(char *)')? – 2012-01-07 00:11:17
'(char *)'? 'void *',通過指針傳遞一個POD? 'new char []'?你確定*這是C++嗎? – Johnsyweb 2012-01-07 00:17:07
是的。非常奇怪的C++。非常奇怪的C++。這是一組必須被函數指針引用的函數的一部分。他們都需要能夠返回任何類型的數據,但只有他們和最終調用者知道類型。中間代碼(我的主代碼)不知道類型是什麼,所以我們必須將'int's和'char's作爲'void *'來傳遞。 – Linuxios 2012-01-07 00:19:44