1. ホーム
  2. C++

const char*' から 'char*' への変換が無効です。

2022-02-07 12:30:02
const char* は定数へのポインタであり、定数そのものへのポインタではないので、初期化しないことも可能です。
ポインターは定数でも変数でも指しますが、ただしポインターから見ると定数を指します。
ポインターは、それが指すデータを変更するために使用することはできません。
<スパン 1. const char* は char* に直接代入できないのでコンパイルが通らない、理由:できる場合。
そうすると、char*を通して指しているconst charの中身を変更することができますが、これは許されません。

そのため、char*は別の新しいスペースを開く必要があります。

string str = "dasfas"。
char* p = (char*)str.c_str();
<スパン 実はこれ、3Fのものと同じ効果なんです。

また、非constポインタに変換されたconstポインタもあります。目的はポインタが指す値を変更することではなく、多くの場合、参照を渡すための便宜のためです。これは最後の手段としてのみ使用されます。

または、strcpy メソッドを使用します。