この時のnStrlengthの値はどうなるでしょう?また、逆順にaDataOutに入れていくとき、aDataOutの先頭にどの値からどの向きに入れていく必要がありますか?(*1)元のプログラムに準じた形で考えてみて下さい。1]の時にどの要素を指すか、上の具体例("abcde"とその時のnStrlength)で考えてみてください。ちなみに、ここで言う最終文字位置は\0の一つ前の要素となります。(これは*1の考えに基づきます。aDataOutは初期化していないのにどうやってアドレスを入れるのかがわかりません。aDataOutは確かに初期化されていませんが、確保はされていますので問題ありません。ある変数aとして、その変数が確保されたアドレスを求めるにはどのようにしたらよいでしょう?また、それを利用するとaDataOut[0]のアドレスも求まります。1]だとaDataIn[5]のアドレス配列とポインタに対しての理解が完全でないように思います。http://www.geocities.jp/ky_webid/c/023.htmlhttp://www9.plala.or.jp/sgwr-t/c/sec10-2.html上の場合、aDataIn[0]としたときは'a'となります。アドレスを求めるには&演算子を用います。1]となりaDataIn[6]となります。1]は\0の次の要素となります。(char*)aDataOut[nStrlength];//aDataOutの先頭aDataOutの先頭の要素はaDataOut[0]ではなかったですか?また、aDataInの最終文字を具体的に言うとどのようになりますか?上の例の時の実際の文字とその時の添え字でお答えください。8年前>>また、aDataInの最終文字を具体的に言うとどのようになりますか?>>上の例の時の実際の文字とその時の添え字でお答えください。やるとエラーがでてしまいます。>>また、aDataInの最終文字を具体的に言うとどのようになりますか?>>上の例の時の実際の文字とその時の添え字でお答えください。'\0';ループ終了時のaDataOutは次のようになっている必要があります。'a'もし、最終文字を\0として上記のプログラムに当てはめると次のようになります。やるとエラーがでてしまいます。具体例で考えてみるとよいのではないでしょうか。abcdeという5文字を入力したとき、edcbaという結果を得るための手順を、コンピューターになったつもりで考えてみてはどうでしょうか。アルゴリズムの部分についてはこれに尽きます。手順を考えてみてください。abcdeを紙に書いて、それを各文字で切り、それを先頭からedcbaの順番になるように並び替えてみてください。8年前pDataInのアドレスをin、pDataOutのアドレスをoutで表示しています。*のほうはそのアドレスに入っている文字です。*pDataOut+-----------------------+こうなります。*pDataOut+-----------------------+こうなります。答えはみけCATさんが最初に書かれていると思われますが。なってしまい何も表示されません。(int)strlen(aDataIn);printf("\n文字数は「%d」文字です。aDataOut);}これでできるようになりました。ありがとうございます。(int)strlen(aDataIn);printf("\n文字数は「%d」文字です。配列でもやってることは同じですが、ポインタの課題だと思われるのでポインタで回答したほうが良いかも。(int)strlen(aDataIn);printf("\n文字数は「%d」文字です。ミクプラは自由にリンクできます。