Прежде всего, я прошу прощения за плохой английский.Почему это вызывает ошибку времени выполнения, символ int без инициализации?
На следующей простой программе,
void fx(int *a){
for(int i=*a; i<='Z'; i++)
printf("%c", i);
}
int main(){
int a;
scanf("%c", &a);
fx(&a);
return 0;
}
Я вошел в заглавную букву во время выполнения, это вызвало фатальную ошибку и была решена путем убийства proccess.
Это не вызывает проблем при следующих кодах.
//except fx()
int main(){
int a;
scanf("%c", &a);
return 0;
}
или
//initialize int a
void fx(int *a){
for(int i=*a; i<='Z'; i++)
printf("%c", i);
}
int main(){
**int a = 0;**
scanf("%c", &a);
fx(&a);
return 0;
}
Я знаю, что это должно быть 'символ' для ввода символа. но я не могу понять ситуацию выше.
Что случилось?
PS. Я работал с VS2010, C++
Просто интересно, почему вы используете 'int' для ввода символа. Почему не 'char'? Черт, если он помечен C++, почему бы не «cin»? – chris
>> Chris Я просто что-то тестировал. И я отметил, потому что использовал cpp. –