우선, 가난한 영어에 대해 사과드립니다. 내가 런타임에서 대문자를 입력 초기화하지 않고 문자를 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;
}
다음 간단한 프로그램에서
은, 그것은 치명적인 오류가 발생하고 였는지를 죽이는 해결되었다.
다음 코드에는 아무런 문제가 없습니다.
//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;
}
나는 그것을 입력 문자에 '문자'이어야한다 알고있다. 그러나 나는 위의 상황에 대해 이해할 수 없다.
무슨 일이 일어 났습니까?
추신. 나는이
int a;
scanf("%c", &a);
사이 ++
궁금한 점은 왜 문자를 입력하기 위해'int'를 사용하고 있는지 궁금합니다. 왜'char'가 아닌가? 지옥, 만약 C++로 태그가 붙어 있다면, 왜 'cin'이 아닌가? – chris
>> Chris 방금 테스트 해보았습니다. 그리고 나는 cpp를 사용했기 때문에 태그를 달았습니다. –