- ベストアンサー
エラーの原因が分かりません。
Cをはじめたのですが、次で、 実行時にエラーとなってしまいます。 (「問題が発生したため・・」とでます)。 コンパイルは出来るのですが、 どこが悪いのでしょうか。 #include <stdio.h> char sendstr(); int main(){ char myc=sendstr(); printf("%s",myc); printf("HELLO"); return 0; } char sendstr(){ char mychar='s'; return mychar; }
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
%sは、文字列(char *)を要求しますが、 プログラムでは、 charを渡しています。 #1の方のようにするか 関数名通り文字列であるなら #include <stdio.h> char *sendstr(void); int main(){ char *myc=sendstr(); printf("%s",myc); printf("HELLO"); return 0; } char *sendstr(void){ static char *mychar="s"; return mychar; } とかしてみたらどうでしょう
その他の回答 (2)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> char myc=sendstr(); > printf("%s",myc); charをプリントする書式指定は %s ではありません。
お礼
ありがとうございます。 %cでうまくいきました。 char型なんて、C以外では、 なかなか扱わないので、大変です。
- kirinoma
- ベストアンサー率53% (288/542)
検証はしていないのですが, >printf("%s",myc); ここの%sを%cにしてみてはいかがでしょうか?
お礼
ありがとうございます。 %cにしたところうまくいきました。
お礼
ありがとうございます。 %cでうまくいきました。 実は、はじめ文字列を扱おうと 思っていたのですが、 変数の受け渡しがうまくいかず 困っていたのです。 この回答を参考にやってみます。