算法c之array

工作使用c的场景比较多,但是都是别人写好的软件。

作为一个拿来主义的程序员,通过阅读他人的代码学习是一件很有趣的事情。

c中定义存储任意数据的数组

typedef struct Array
{
    //大小
    size_t size;
    //长度
    size_t len;
    // 类型长度
    size_t typeSize;
    //复制
    void(*dup)(void *ptr, void *key);
    //释放
    void(*free)(void *ptr);
    //匹配
    int(*match)(void *ptr, void *key);
    //指向指针
    void   *p;
}Array;

其他的定义就是new,初始化之类的。

可以自定义复制,释放,匹配的函数。

默认的会用到 内存拷贝memcpy,内存地址比较memcmp两个函数

通过这个结构,我们就可以在c中像其他语言一样使用泛型数组了。就行使用vector,vec,arraylist 之类的一样。

原文地址:https://www.cnblogs.com/beckbi/p/11516233.html