私はまだCプログラミングに比較的新しいですし、これまで見たことのないエラーに遭遇しました。私は2つのintをとり、第1のものを第2の入力に基づく基数のそれぞれの形式に変換するプログラムを書いています。私はこの問題を解決する方法を尋ねていません、私はこのエラーを受け取るためにどこが間違っているかを尋ねています。私はいくつかの研究を行い、セグメンテーションの失敗はポインタと関係していることを知り、私は私の周りで遊んでいて、このエラーを取り除くことに運がなかった。どんな助けでも大歓迎です!Cプログラム - セグメンテーションフォールトを受信
#include<stdio.h>
void decimalToRadix(int d, int r, char *toRadix);
int main(void){
int decimal, radix;
char toRadixForm[100];
printf("Enter a decimal number: ");
scanf("%d",&decimal);
printf("Enter radix number: ");
scanf("%d",radix);
decimalToRadix(decimal, radix, toRadixForm);
puts("");
return 0;
}
void decimalToRadix(int decimal, int radix, char *toRadix){
int result;
int i=1,x,temp;
result=decimal;
//will loop until result is equal to 0
while(result!=0){
//get the remainder
temp=result%radix;
//if<10 add 48 so character format stored values are from 0-9
if(temp<10)
temp=temp+48;
//if greater that or equal to 10 add 55 to it stores values A-Z
else
temp=temp+55;
toRadix[i++]=temp;
result=result/radix;
}
printf("The value of the number you entered, %d, to radix form is ", decimal);
for(x=i-1; x>0; x--){
printf("%c", toRadix[x]);
}
これをデバッグする方法は、デバッガを使用することです。 – kaylum
@kaylum私は通常、エラーが発生したときにそれを1行ずつステップ実行します。どんなデバッガにもあまり馴染んでいないので、私は元の投稿に言い直すべきでしょう。私はあなたの応答に感謝します。 – Corey
'scanf("%d "、基数);と' scanf( "%d"、&decimal);を慎重に比較します。 – BLUEPIXY