概述
MySQL源码中自己定义了许多数据结构,放在mysys的目录下,源码中通常都使用这些数据结构来组织存放数据,也更容易实现跨平台。
下面先来看下MySQL定义的动态数组:
【源代码include/array.h mysys/array.c】
typedef structst_dynamic_array
{
uchar*buffer;ulongelements, max_element;ulongalloc_increment;uintsize_of_element;
} DYNAMIC_ARRAY;
特点:
1. 动态数组中的元素具有固定的内存空间大小 size_of_element
2. 插入一个元素时,提供元素的指针,写入时会指针所指向的位置开始后的size_of_element字节的内存memcpy到数组中
3. 检索时,提供单个索引位置的直接定位,或者根据elements来for轮询所有的元素
下面看一下针对动态数组的函数:
1. init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size,
void *init_buffer, ulong init_alloc,
ulong alloc_increment)
初始化elements=max_element=0
malloc init_alloc*element_size大小的内存空间给array->buffer。
2. insert_dynamic(DYNAMIC_ARRAY *array, uchar* element)
插入一个元素 element
如果elemen
最后
以上就是欢呼灰狼为你收集整理的mysql函数中定义可变数组_MySQL源码 数据结构array的全部内容,希望文章能够帮你解决mysql函数中定义可变数组_MySQL源码 数据结构array所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复