C语言在数组中指定位置插入元素的程序:
是否实际分配了额外的传染性内存位置,并且在此代码运行时形成了一个大小增加的数组?
#include <stdio.h>
int main()
{
int arr[100] = { 0 };
int i, x, pos, n = 10;
for (i = 0; i < 10; i++)
arr[i] = i + 1;
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("n");
x = 50;
pos = 5;
// increase the size by 1
n++;
// shift elements forward
for (i = n-1; i >= pos; i--)
arr[i] = arr[i - 1];
// insert x at pos
arr[pos - 1] = x;
// print the updated array
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("n");
return 0;
}
是否实际分配了额外的传染性内存位置,并且在此代码运行时形成了一个大小增加的数组?
不,一旦定义了数组,像这样:
int arr[100] = ...
它的大小是固定的(按定义)。