質問: 文字列型のデータをポインタ型のエリアに代入したいのですがどうしたらよいでしょうか? char path[256]; char *INPUTFILE; 「char path」に"c:\windows\temp\inputfile.txt"という、入力ファイルへのパスが格納されているとします。 このデータを「char *INPUTFILE」に入れたいのです。 もしくは「char path」のデータを使って、ファイルをOPENさせる方法を教えてください。(この訊き方のほうがよかったかな?)
回答: fopen の第一引数の型は const char * なので、 本当にこの宣言をしているのであれば、 fp = fopen(path, "r+b"); の書き方でまちがいないはずです。 というか、 char * INPUTFILE; であるならば、 INPUTFILE = path; fp = fopen(INPUTFILE, "r+b"); でも同じになるはずです。 (もしかすると、 fp = fopen((const char *)path, ... とかする必要がある?) INPUTFILE = path; は、データの入っている場所の先頭(path == &path[0})をINPUTFILE という場所専用の変数に代入していることになります。 もし、path[256] の中身を char path[256] = "c:\windows\ ..."; のように設定しているのであれば、 char path[256] = "c:\\windows\\ ..."; にする、とかが必要かも知れません。 C の処理系(パス名から察するにWindows の処理系?だと全然知らないのですが) と、具体的なソース、それに「型が違う」と言われたメッセージの中身をくわしく教えていただけると、もうすこし具体的なお答えが返って来ると思います。