항상 프로그래밍 질문만 하러 오는거 같네요;  



dev-c++에서 정렬 프로그램을 만들고 있는데, 숫자 개수가 억단위 입니다-_-;

유사코드를 보면서 만들고 있는데,  

타입을 long으로 해주어도 오버플로가 나는건지 컴파일 후 프로그램을 실행하면 윈도우 오류창을 뱉으면서 뻗네요;

예를들어서,

#include <stdio.h>
#include <stdlib.h>

int main(){
    
    long n = 0;
    printf("입력>>");
    scanf("%ld",&n);
    printf("\n 값은 %ld",n);
    
    
    long list[n]; //VB에서는 에러지만, gcc(GNU)에서는 아니더라고요..
    
    printf("\n에러없음.\n");
  
    system("pause");
    
    return 0;
    
}

이렇게 했다고 하면, 520000까지는 괜찮은데 그 이상이면 뻗습니다.;

long형은 2,147,583,647까지 받을 수 있는거로 알고 있는데, 받질 못하네요.. 32bit 넘어가기 때문인가요;?

이거 해결 방법이 있나요;? malloc으로 선언해줘야 할까요;; linked-list면 될까요;ㅛ;?

참고로 사용하는 컴퓨터는 램이 1기가입니다;