C语言 当插入在数组做n++增加数组的大小?它实际上为数组分配附加的传染性内存位置吗?



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] = ...

它的大小是固定的(按定义)。

相关内容

最新更新