私はC言語を練習しており、単語のアルファベットのシーケンスを反転させる単純なプログラムを構築しました。 シーケンス反転プログラムでこのセグメンテーションエラーを修正するにはどうすればよいですか?
#include <stdio.h>
int main(void)
{
char str[50];
printf("Enter a word: ");
scanf("%s", str);
int i, len=0;
char temp;
while(str[len]!='\0')
{
len++;
}
/*
for(i=0; i<len/2; i++)
{
temp=str[i];
str[i]=str[(len-i)-1];
str[(len-i)-1]=temp;
}
*/
while(i!=len-1)
{
temp=str[i];
str[i]=str[len-1];
str[len-1]=temp;
i++;
len--;
}
printf("%s\n", str);
return 0;
}
は、私は2つのバージョンを持って、一つは非常にうまく機能しているが、他は作る「セグメンテーションエラー:11」私は私が間違ったメモリ位置をアクセスしている場合がありますが、それは私が間違って行っているかを把握するのは非常にトリッキーだと思います。
Eric Lippertの[小さなプログラムのデバッグ方法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を読んで、デバッガを使用してクラッシュをキャッチするか、プログラムを1行ずつステップ実行します。 –
コンテンツのためにオフトピックではありません!しかし、これは単なる変数の初期化ではないため、問題は単純なタイプミスで作成されているため、「話題になっていません」と思われる可能性が高くなります。 – Lundin