코드블럭에선 컴파일되는 데 비주얼스튜디어오 6.0에선 컴파일 에러가 나요?
둘삥
질문 제목 :이거 compile error가 왜 생기나요?15이하의 n을 입력받아 n개의 자연수를 입력받아 내림차순으로 정렬하는 소스인데요
아래와 같이 작성하면 코드블럭에서는 잘 작동됩니다. 그런데 비주얼 스튜디오에서 컴파일하면 에러가 뜬다고
하네요? 왜 그럴까요?질문 내용 :
#includestdio.h
void input(int a[],int cnt)
{
int i;
for(i=0;icnt;i++){
scanf(%d,&a[i]);
}
}
void output(int a[],int cnt)
{
int j;
for(j=0;jcnt;j++){
printf(%d ,a[j]);
}
printf(\n);
}
void swap(int& x,int& y)
{
int imsi=x;
x=y;
y=imsi;
}
void sort(int a[],int cnt)
{
int k,l;
for(k=0;kcnt-1;k++){
for(l=k+1;lcnt;l++){
if(a[k]a[l]){
swap(a[k],a[l]);
}
}
}
}
int main() {
int n;
scanf(%d,&n);
if(n=15){
int arr[n]; -------------여기에서 에러가 발생하는 데요. 아마 배열의 크기를 임의로 지정하는 것에 에러가 나는 듯
input(arr,n);
sort(arr,n);
output(arr,n);
}
return 0;
}
-
우수리
감사합니다
-
앨프레드
배열의 크기를 지정하는 것은 반드시 상수여야 합니다.
C99에서 추가되어 변수를 쓸수도 있지만 함수가 시작할 때 그 변수의 크기가 이미 정해져있어야 합니다.