7年前Cの初歩的な質問かもしれませんが、Aという関数でキーボードから入力して文字列aに入れて返し、その戻り値aをmainの文字列bに入れたいのですが、うまくいきません。テンプレートを使って書き込んでいただくのが良いと思います。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。抽象的な質問ですみませんでした。[デフォルトで有効]と表示されます。エラーの意味がよく分からないので教えていただきたいです。a[256];は局所変数(ローカル変数)ですので、戻り値にすることはできません。関数Aから抜けると配列aは消滅するからです。*b[10];は文字型ポインタのポインタが10個ならんだ配列ですので、文字列を10個覚えることができます。文字列が10個欲しいわけではないですよね?命題の>Aという関数でキーボードから入力して文字列aに入れて返し、その戻り値aをmainの文字列bに入れたいのですがこれを実現するためには戻り値に文字列を戻したいことなりますが、C言語ではmallocなどでaを動的確保しないと出来ないことになります。【補足】ココらへんをどう解決するかはkwさんの知識量によって左右されます。詳しい情報がほしいのです。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。7年前2種類のサンプルを書いてみました。返すなら、関数内でメモリアロケートする必要があります。関数内でメモリをアロケートして、その中に文字列を入れて返します。その代り、受け取った後にfreeする必要があります。GetStdinStr2freeしなくて済むようにするなら、main側で確保した配列を渡してやり、関数内で格納してやると良いでしょう。これなら関数化する意味があまりありませんが・・。ミクプラは自由にリンクできます。