我正在尝试计时和比较排序算法。据我了解:sizeof(int)
是 4 个字节,因此 int array[one million];
产生 (4) 百万字节,大致为 4,000 kb 或 4mb。
那为什么我不能呢?我很确定我还有更多。准确地说是 2gb。
如果这意味着什么,我正在使用 gcc。
最佳答案
堆栈上不能有那么多整数。
尝试在堆上为您的数组分配空间。
int *array = malloc(1000000*sizeof(int));
// if array is not null, then you have an array with 1,000,000 ints.
完成排序算法后,释放数组:
free(array); // frees memory allocated before
关于不能分配超过一百万个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111589/