- ベストアンサー
strcpyについて
strcpyでコピーしたものを配列に入れていきたいのですが、やってみると 「'=' : 'char *' から 'char' に変換することはできません。この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。」とエラーが出ました。 strcpyでコピーしたものを配列に入れることはできないのですか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>> char des; だけでは 文字配列ではなく 文字を表す変数の定義です 文字の配列の定義をしたいのであれば 変数を配列の構文にあうようにしないといけません つまり char des[文字列の最大長]; といった構文を使うことになります このあたりは C/C++の入門書に解説されていると思います お手元のお使いのコンパイラについて書かれた参考書を準備なさることをお勧めします
その他の回答 (5)
- tatsu99
- ベストアンサー率52% (391/751)
#1です。回答期限をすぎても、補足がありませんでしたので、本件につきましては、以降補足がなされましても、回答いたしませんのでご了承下さい。
- chie65536
- ベストアンサー率41% (2512/6032)
もしかして void main(void) { char src = "test string"; char dst[256]; (以下略) って書いてないか? char src = "test string"; を char *src = "test string"; か char src[] = { "test string" }; に変えてみよう。
お礼
回答ありがとうございました。
- redfox63
- ベストアンサー率71% (1325/1856)
エラーが起きている箇所のソースを支障の無い範囲で公開しましょう たとえば char buf[256]; char des; scanf( "%s", buf ); strcpy( des, buf ); などといったコードですとお示しのようなエラーになるでしょう この場合 desを文字配列(またはどこかに記憶域を持つ文字型のポインタ)としないといけないことになります ソース側が問題なのか、ターゲット側が問題なのかなどの判断も質問分からでは読み取れません
お礼
>char des; としただけでは文字配列にならないのですか?
- eroermine
- ベストアンサー率18% (83/444)
文字列は普通 char * 型 配列が char list[16] などとなってるばあい要素が char 型なので入りません。 char 配列の要素は 1バイト、文字列はポインターなので 2バイト以上 キャストしても駄目です。 char *list[16] 等としないと。
お礼
回答ありがとうございました。
- tatsu99
- ベストアンサー率52% (391/751)
実際のエラーとなった箇所のソース 使用しているコンパイラ 使用しているOSを提示してください。 回答期限:11月25日
お礼
回答ありがとうございました。