我是靠谱客的博主 欢呼灰狼,最近开发中收集的这篇文章主要介绍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源码 数据结构array所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部