我是靠谱客的博主 欢呼灰狼,这篇文章主要介绍mysql函数中定义可变数组_MySQL源码 数据结构array,现在分享给大家,希望可以做个参考。

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源码内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部