Вам было бы лучше распределить его в куче, а не в стеке. что-то вроде
int main(int argc, char* argv[]) { int * sieve; sieve = malloc(20000); return 0; }