Obtención de una excepción de desbordamiento de pila al declarar, ng una gran matriz

El siguiente código está generando un error de desbordamiento de pila para mí

int main(int argc, char* argv[])
{
    int sieve[2000000];
    return 0;
}

¿Cómo puedo evitar esto? Estoy usando Turbo C ++ pero me gustaría mantener mi código en C

EDITAR

Gracias por el consejo. El código anterior era solo, por ejemplo, en realidad declaro la matriz en una función y no en subprincipal. Además, necesitaba que la matriz se inicializara a ceros, así que cuando busqué en Google malloc, descubrí que calloc era perfecto para mis propósitos.

Malloc / calloc también tiene la ventaja sobre la asignación en la pila de permitirme declarar el tamaño usando una variable.

Respuestas a la pregunta(9)

Su respuesta a la pregunta