c - C语言编程中的插入排序

标签 c arrays pointers memory-management insertion-sort

在插入排序中,

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

最佳答案

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

  1. 保存数组的内存是在编译期间分配的,这在多种意义上是正确的。

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

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

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

  2. 虽然确实不能增加为数组分配的内存量,但对于指针来说却

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

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

关于c - C语言编程中的插入排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830672/

相关文章:

c - 使用正则表达式检查 .dat 文件

c - 如何编写递归函数的迭代版本?

c++ - 在 C++ 中获取给定指向它的指针的类型名的类型名

无法使用指针为结构创建动态数组

c++ - 指向类对象的指针 vector

c - 节目信息;惯例,我做得对吗?

c - 函数宏参数到函数宏

c - c 指针上的前缀或后缀操作

javascript - Google Apps 脚本无法为一行中的值编制索引

java - java计算数组中出现的次数