« [BCB] 動的に配列を生成する | トップページ | [BCB] StringGridで追加した行がちょうどいいとこに表示されるように »

[BCB] AnsiString型はchar *に変換できない!?

AnsiStringをchar *に代入したいときは、c_str() を使用します。

char *dest;
AnsiString src="test";

//dest=src; これはエラーになる
dest=src.c_str();

c_str() を使う際の注意点。
AnsiString::c_str() は一時的な領域をを指すポインタを返します。このポインタは,それが使われている文の実行が終了すると不定になってします。 そのため、 c_str() が指す領域を変更するような処理をしてはいけません。

« [BCB] 動的に配列を生成する | トップページ | [BCB] StringGridで追加した行がちょうどいいとこに表示されるように »

C++Builder」カテゴリの記事

C++言語・Pascal言語」カテゴリの記事

コメント

この記事へのコメントは終了しました。