0

オブジェクトへの参照を別の変数に割り当てようとしました

scene_t temp = &scene;

しかし、私はこのエラーメッセージを受け取りました

error: incompatible types when assigning to type 'scene_t' from type 'struct scene_t *'

ポインターも使ってみました

scene_t temp = *scene

そして、私は別のエラーが発生しました

type argument of unary '*' (have 'scene_t')

私は何をすべきか?

4

1 に答える 1

2

のタイプがであると仮定すると、のタイプがであるsceneことscene_tが明らかであるはずです。これは、コンパイラが不平を言っていることです。がaまたは非配列の組み込み型の場合は、次のように記述してください。&scenescene_t*scene_ttypedefstruct

scene_t temp = scene;

また

scene_t* temp = &scene;

必要なセマンティクスに応じて。おそらく前者。


が実際に配列型の場合scene_t、上記の最初のオプションは機能しません。2つ目はそうなります、実際には必要以上に言葉が多くなります。するだけで十分でしょう

thing_scene_t_is_an_array_of * temp = scene;

いずれにせよ、古いデータへの新しいポインタを取得し、一方を上書きするともう一方が上書きされるので、注意してください。


address-of演算子(&)のコンテキストで「参照」という単語を使用することは、これをc++POVから表示していることを示していることに注意してください。Cにはc++スタイルの参照がないため、そのように考える必要はありません&

于 2013-03-09T01:08:47.127 に答える