注:これはタイトルにこの名前の10億回と1つの質問の複製ではありません。これはポインタと非常に奇妙なものと関係しています。==
ではなく、偶発的な=
ではありません。"代入の左辺オペランドとして必要な左辺値" - C++
out
というvoid*
引数を持つC++関数があります。 uint32_t*
で
(char*)out=new char[*size];
size
:私はこのラインを持っています。コンパイラが文句を言う:
fundemental_bin_types.h:55:32: error: lvalue required as left operand of assignment
何が問題なのですか?
なぜここでキャスト( '(char *)')が必要だと思いますか? –
'(char *)'? 'void *'、PODをポインタで渡す? '新しいchar []'?あなたは確かです*これはC++ですか? – Johnsyweb
はい。ちょうど非常に奇妙なC++。非常に奇妙なC++。これは、関数ポインタによって参照されなければならない関数のセットの一部です。彼らはすべての種類のデータを返すことができる必要がありますが、彼らとエンド・コール者だけが型を知っています。中間コード(私のメインコード)は型が何であるか分からないので、 'int'や' char'sのようなものを 'void *'として渡す必要があります。 – Linuxios