array_vector.h
#ifndef _ARRAY_VECTOR_
#define _ARRAY_VECTOR_ //防止重复包含
/*
C/C++里面内存到底可以分配在那些位置?
1:参数 局部变量 分配在栈上
2:静态变量 全局变量 分配在数据段上
3:使用malloc free new delete在运行期间像操作系统申请的内存,然后不用了,又释放内存,为堆上的内存
int a[常量大小]:
//缺点
1:只能分配在栈上,或定义为全局变量
2:一旦定义后,数据的元素个数再也无法改变
//优点
按索引来存放数据,方便使用和查找 (索引从0开始)
动态数组:
1:具备数组的访问优点,可以通过索引来获取里面的值
2:可以扩充数组的容量,当需要存放的数据元素超过容量的时候,可以扩容
3:动态数组的内存 分配在堆上
*/
struct array_vector
{
unsigned char* mem_ptr; //指向我们的堆上动态数组的内存
int max_elem; //保存我们当前这块内存能存放的最大元素个数
int elem_count; //当前动态数据里面保存的元素的个数
int sizeof_elem; //每一个元素所占的内存大小
};
//初始化我们的结构体,指定让他来存储哪种数据类型
void vector_define(struct array_vector* v, int sizeof_elem);
void