プロが教えるわが家の防犯対策術!

c++で、以下のようなコードは問題ないでしょうか?

// chrの中身の小文字を大文字にする
void func(char* chr);

std::string str("aaa");
const char* str_p = std.c_str();
func((char*)str_p); ←これは大丈夫ですか?

//このあとstrに対して文字列を追加したりいろいろ処理する。


このようにc_strで取得したconst char*をconstをはずして
強引にいじくることは問題ないでしょうか?

A 回答 (3件)

許されていません。


できるかもしれないけど、その結果は保証されません。
    • good
    • 0
この回答へのお礼

やはりそうですか。
ありがとうございました。

お礼日時:2008/04/10 01:45

>強引にいじくることは問題ないでしょうか?


問題です。やってはいけません。

戻り値が const char* である
というのは、それが示す文字配列を加工対象にできない、
してはいけないというライブラリ側の意思表示と捉えてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/04/10 01:45

可能か不可能でいうと可能ですが、そうゆう利用方法は想定されていないので、推奨されません。

    • good
    • 0
この回答へのお礼

おかしなことになるかもということですね。
ありがとうございました。

お礼日時:2008/04/10 01:46

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