dポイントプレゼントキャンペーン実施中!

char Buf[1];
char *pbf;

Buf = pbf;

とするとerrorになってしまいます。
うまくキャストすることで代入することは可能でしょうか。

A 回答 (3件)

Bufへポインターを代入することはできません。


Bufは、配列Buf[1]の先頭アドレスを示します。
int x;
3 = x;
のような代入ができないのと同じことです。
pbf = Buf;ならOKです。

Buf = pbf;としたいのは、
なにをなさりたいのでしょうか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/01/04 06:57

Bufは、アドレス定数なので、


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

何がしたいのでしょうか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/01/04 06:59

逆じゃないですか?



pbf = Buf

――がやりたい事では。
配列名は、lvalueになれなかったと記憶してますので、多分どうキャストしようが代入不可では。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/01/04 06:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!