• ベストアンサー

配列へのポインタの代入

char Buf[1]; char *pbf; Buf = pbf; とするとerrorになってしまいます。 うまくキャストすることで代入することは可能でしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

Bufへポインターを代入することはできません。 Bufは、配列Buf[1]の先頭アドレスを示します。 int x; 3 = x; のような代入ができないのと同じことです。 pbf = Buf;ならOKです。 Buf = pbf;としたいのは、 なにをなさりたいのでしょうか?

mtsed
質問者

お礼

ありがとうございます。 確かに「3=x」と代入しているようなものですね。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

Bufは、アドレス定数なので、 Buf=pbf とは何がどうやってもできません。 配列にポインタを入れたいのなら char *Buf[1]; char *pbf; ならBufがポインタの配列なので、 Buf[0]=pbf; はできます。 何がしたいのでしょうか?

mtsed
質問者

お礼

ありがとうございます。 アドレス定数を書き換えることになるのですね。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

逆じゃないですか? pbf = Buf ――がやりたい事では。 配列名は、lvalueになれなかったと記憶してますので、多分どうキャストしようが代入不可では。

mtsed
質問者

お礼

ありがとうございます。 理解しました。

関連するQ&A

専門家に質問してみよう