みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

文字列

C言語の勉強をしてて、文字列を反転させる以下のようなプログラムを書いてみました。

#include <stdio.h>
#include <string.h>
void str_reverse(char s[])
{
int i,l=strlen(s);
char *r;
for(i=0;i<l;i++){
r[i]=s[l-i-1];
}
for(i=0;i<l;i++) s[i]=r[i];
return;
}
int main()
{
char s[100];
scanf("%s",&s);
str_reverse(s);
printf("%s",s);
return 0;
}

実行してみると基本的にうまくいくのですが、文字を10文字入力した時だけ
「問題が発生したため、○○.exeを終了します。…」
というエラーウィンドウが出てきてしまいます。
どなか原因と解決法を教えてください。

投稿日時 - 2010-01-11 16:14:05

QNo.5585158

暇なときに回答ください

質問者が選んだベストアンサー

>char *r;
ここが不正なアドレスになります。
mainと同様に

char r[100];

とすればどうでしょうか?

>scanf("%s",&s);
&はいらないです。

投稿日時 - 2010-01-11 16:49:37

お礼

解決しました!!
ありがとうございます!!

投稿日時 - 2010-01-11 16:57:10

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問