为啥调用下面的函数后 直接在数组尾部加数据啊 上面第一个第一个判断不是没过啊?或者是那位可以解释下怎么把数据加到最后一个的
[C] 纯文本查看 复制代码 void insert_at(DynamicArray *array, size_t index, int element)
{
// 判断索引是否超出范围
if (index > array->length)
return;
// 判断长度和容量是否相同
if (array->length == array->capacity)
resize_dynamic_array(array, array->capacity * 2); // 扩容
// 从当前索引位置index向后一个一个的移动数据
for (int i = array->length; i > index; i--)
array->data[i] = array->data[i - 1];
// 把新的输入存储到当前的这个索引位置
array->data[index] = element;
array->length++; // 长度加1
}
// 向数组尾部追加一个数据的函数
void insert_end(DynamicArray *array, int element)
{
insert_at(array, array->length, element);
} |