在C函数和主文件中实现向量(动态数组)可以通过以下步骤进行:
typedef struct {
int* data; // 指向动态数组的指针
int length; // 当前向量的长度
int capacity; // 当前向量的容量
} Vector;
// 初始化向量
void initVector(Vector* vector) {
vector->data = NULL;
vector->length = 0;
vector->capacity = 0;
}
// 添加元素到向量末尾
void pushBack(Vector* vector, int element) {
if (vector->length == vector->capacity) {
// 当向量已满时,重新分配内存空间
vector->capacity = (vector->capacity == 0) ? 1 : vector->capacity * 2;
vector->data = (int*)realloc(vector->data, vector->capacity * sizeof(int));
}
vector->data[vector->length++] = element;
}
// 获取指定索引位置的元素
int getElement(Vector* vector, int index) {
if (index >= 0 && index < vector->length) {
return vector->data[index];
}
return -1; // 返回一个特殊值表示索引越界
}
int main() {
Vector vector;
initVector(&vector);
pushBack(&vector, 1);
pushBack(&vector, 2);
pushBack(&vector, 3);
int element = getElement(&vector, 1);
printf("Element at index 1: %d\n", element);
return 0;
}
这样,就可以在C函数和主文件中实现向量(动态数组)的功能。注意,以上代码只是一个简单的示例,实际应用中可能需要更多的函数和错误处理机制来保证向量的正确操作。
领取专属 10元无门槛券
手把手带您无忧上云