掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.26721

strcpyについて
投稿者---9no(2006/05/01 14:54:28)


文字列を複写しようと思い、strcpy関数を用いたのですが、
「パラメータ '__dest' は signed char * 型として定義されているので int は渡せない」
と出てしまいました。
なぜでしょう?
ちなみに
char *a[30];
char *buff; ←scanf("%s",buff)で読み込みました。
strcpy(*a[i],buff)
iはfor文の制御変数です。
環境はOSはXP SP2、コンパイラはBorlandC++コンパイラです。 


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:strcpyについて 26722 YuO 2006/05/01 15:21:01


No.26722

Re:strcpyについて
投稿者---YuO(2006/05/01 15:21:01)


>「パラメータ '__dest' は signed char * 型として定義されているので int は渡せない」
>なぜでしょう?

そのように記述したからです。


>char *a[30];

aは「『【char】型へのポインタ』型を要素型とする30個の要素からなる配列」型ですから,

>strcpy(*a[i],buff)

*a[i]はchar型になります。
また,char型はint型に自動的に拡張されますから,最初のようなメッセージになったのでしょう。



この投稿にコメントする

削除パスワード

No.26723

Re:strcpyについて
投稿者---kz3(2006/05/01 15:43:57)


>strcpy(*a[i],buff)

ここでエラーが出ていてコンパイルが通っていないから、
9noさんは気づいていないのかもしれませんけど、

>char *buff; ←scanf("%s",buff)で読み込みました。

ここだけ見ると
buffは有効な領域を指していないポインタを指定しているので、
強制終了か何かが起こると思います。

ちゃんと確保していたら問題ありませんけど...





この投稿にコメントする

削除パスワード

No.26725

Re:strcpyについて
投稿者---9no(2006/05/01 17:42:50)


><pre>
<font color=brown>>strcpy(*a[i],buff)</font>

ここでエラーが出ていてコンパイルが通っていないから、
9noさんは気づいていないのかもしれませんけど、

<font color=brown>>char *buff; ←scanf("%s",buff)で読み込みました。</font>

ここだけ見ると
buffは有効な領域を指していないポインタを指定しているので、
強制終了か何かが起こると思います。

ちゃんと確保していたら問題ありませんけど...</pre>
>

ちゃんと確保もできていませんでした^^;
解決しましたのが、今後も気を付けていきたいです。




この投稿にコメントする

削除パスワード

No.26724

Re:strcpyについて
投稿者---9no(2006/05/01 17:41:26)


>aは「『【char】型へのポインタ』型を要素型とする30個の要素からなる配列」型ですから,
>
>>strcpy(*a[i],buff)
>
>*a[i]はchar型になります。
>また,char型はint型に自動的に拡張されますから,最初のようなメッセージになったのでしょう。

返答ありがとうございます。いまいち文字型へのポインタの使い方が分かっていませんでした。解決しました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧