Melon库运用——数组篇

news/2024/11/23 20:46:19/

头文件片段

// mln_array.hstruct mln_array_attr
{void                     *pool;       // 自定义内存池结构指针array_pool_alloc_handler  pool_alloc; // 自定义内存池分配函数指针array_pool_free_handler   pool_free;  // 自定义内存池释放函数指针array_free                free;       // 用于对数组元素做资源释放的函数指针mln_size_t                size;       // 单个数组元素的字节大小mln_size_t                nalloc;     // 初始数组长度,后续数组按照两倍进行扩张
};typedef struct
{void                     *elts;mln_size_t                size;mln_size_t                nalloc;mln_size_t                nelts;void                     *pool;array_pool_alloc_handler  pool_alloc;array_pool_free_handler   pool_free;array_free                free;
} mln_array_t;

代码段

#include<stdio.h>
#include<string.h>
#include "mln_array.h"#include "mln_array.c"typedef struct
{int i;double d;char c[99];
} test_type ;
// 定义数组中元素类型 int main()
{test_type * ptr;            // 元素类型指针 mln_array_t arr;            // 数组 struct mln_array_attr attr; // 数组初始化属性attr.pool = NULL;attr.pool_alloc = NULL;attr.pool_free = NULL;attr.free = NULL;attr.size = sizeof(test_type);attr.nalloc = 1;// 设置各项属性值 mln_array_init(&arr, &attr);// 按照初始化属性attr初始化数组arr mln_size_t j, k, n;char C[] = "Hello world!";ptr = (test_type *)mln_array_push(&arr);// 向数组中追加1个元素,并将元素内存地址返回if(ptr == NULL) return 1;ptr -> i = 1;ptr -> d = 1.999999;for(k=0; k<strlen(C); k++)ptr -> c[k] = C[k];ptr -> c[strlen(C)] = '\0';ptr = (test_type *)mln_array_pushn(&arr, 2);// 向数组中追加n个元素,并将这些元素的内存首地址返回if(ptr == NULL) return 1;for(j=0; j<2; j++){ptr[j].i = j + 2;ptr[j].d = j + 2.999999;for(k=0; k<strlen(C); k++)ptr[j].c[k] = C[k];ptr[j].c[strlen(C)] = '\0';}ptr = mln_array_elts(&arr); // 获取数组所有元素的起始地址n = mln_array_nelts(&arr);  // 获取数组的元素个数for(j=0; j<n; j++){printf("%d\n",  ptr[j].i);printf("%lf\n", ptr[j].d);printf("%s\n",  ptr[j].c);puts("");}mln_array_destroy(&arr);// 释放指定数组arr的所有元素内存return 0;
}


http://www.ppmy.cn/news/781835.html

相关文章

git 解决每次更新代码都要输入用户名和token的解决方案

参考&#xff1a;git 解决每次push代码都要输入用户名密码和git token失效的问题 Github从2021年8月14日开始就不支持用户密码输入了&#xff1a;remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. …

怎么让Word形状里的文字上下左右居中

怎么让Word形状里的文字上下左右居中? 第一&#xff1a;左右居中&#xff0c;用段落居中方法&#xff1a; 第二&#xff1a;上下居中&#xff0c;选定图形&#xff0c;单击鼠标右键并选择“设置形状格式”&#xff0c;在选项卡的“文本框”中&#xff0c;选择中部对齐 效果图&…

HTMl 如何让div内字体上下左右居中

div中的文字水平居中&#xff1a;text-align:center&#xff1b;即可。 div中的文字垂直居中&#xff1a;line-height:值。值等于div的高度。text-indent:2em;//首航缩进2字符div中其他标签左右居中 <div style"width:100%;height:10%;"><h1 align"cen…

Word落款如何实现上下相对居中分布

写各类公文到文末的时候&#xff0c;往往要加上落款&#xff0c;一般为靠右对齐&#xff0c;上面一行为单位/部门&#xff0c;下面一行为日期&#xff0c;类似于下图&#xff1a; 根据单位或部门名字的长短不同&#xff0c;有时候会与日期无法做到视觉上的上下相对居中分布&…

完美设置“Word表格中文字上下居中”

写在这里的初衷&#xff0c;一是备忘&#xff0c;二是希望得到高人指点&#xff0c;三是希望能遇到志同道合的朋友。 目录 1.问题描述2.解决步骤 1.问题描述 大家可能都遇到过需要对word表格中的文字上下居中&#xff0c;之前很是头疼&#xff0c;通过查找资料&#xff0c;发现…

如何设置div中的文本上下左右都居中

.div { wight:25px; height:25px; } 这是如何设置div中的上下左右都居中<strong></strong> 设置一下三行代码&#xff1a; <pre name"code" class"css">{ text-align&#xff1a;center;/*设置文字左右居中*/ line-height: 25px;/*设置…

div内容上下左右居中

div内容上下左右居中&#xff0c;自测超级有用&#xff01;&#xff01;&#xff01; div内容通过display实现上下左右居中 div内容通过display实现上下左右居中 笔友在最近写项目过程中碰到一个非常棘手的问题&#xff0c;就是在div里面需要装有提示的span标签和img图片上下居…

php中文字怎么上下居中,word文档表格文字怎么上下居中对齐

居中对齐方法&#xff1a;1、选中单元格&#xff0c;鼠标右击选择“单元格对齐方式”&#xff0c;然后选择“水平居中”即可。2、选中单元格&#xff0c;鼠标右击&#xff0c;选择“表格属性”&#xff1b;在弹出的对话框中选择“表格”选项卡&#xff0c;在“对齐方式”区域选…