c编程中的插入排序

时间:2011-10-20 03:07:00

标签: c arrays pointers memory-management insertion-sort

在插入排序中,

  • 我们如何在整数数组中插入一个新整数?
  • 数组的内存将在编译期间分配,所以我们不能增加数组的大小,即使我们分配了一些额外的空间,如果所需的内存超过分配的内存,我们该怎么办?
  • 我们应该为插入每个整数创建一个新数组吗?
  • 如果我们想在排序数组中插入更多的整数,我们该怎么办?
  • 我们可以用指针做这个吗?

1 个答案:

答案 0 :(得分:2)

我认为您提出的所有问题都可以通过以下方式解答:

  1. 是真的 - 在多个意义上 - 在编译期间分配了保存数组的内存。

    1. 在实际运行程序之前无法分配内存。

    2. 虽然数组的大小通常是在编译时决定的(例如int array[32]),但指针的情况也是如此。

      例如,int *array = malloc(many * sizeof(int));many整数腾出空间。

  2. 虽然 为真,但您无法增加为数组分配的内存量,但 保持指针也是如此。

    例如,array = realloc(many_more * sizeof(int));many_more整数腾出空间。

  3. 我建议你阅读this tutorial on pointers and arrays