首页 > 其他分享 >结构体,指针函数和数组初始化

结构体,指针函数和数组初始化

时间:2023-07-06 14:14:38浏览次数:41  
标签:初始化 malloc uint8 dev 内存 数组 my 指针

struct _m_malloc_dev
{
    void(*init)(uint8_t);//初始化函数
    uint8_t (*perused)(uint8_t);//内存使用率
    uint8_t *membase[SRAMBANK];//内存池管理 srambank个区域的内存
    uint16_t *memmap[SRAMBANK];//内存管理状态表
    uint8_t memrdy[SRAMBANK];//内存管理状态是否就绪

};

 struct _m_malloc_dev malloc_dev = 
 {
         my_mem_init,//内存初始化
         my_men_perused,//内存使用率
         mem1base,mem2base,//内存池
        mem1mapbase,mem2mapbase,    //内存管理状态表
        0,0,                           //内存管理未就绪
 };
1. init:一个函数指针,接受一个uint8_t参数,用于初始化内存。
2. perused:一个函数指针,接受一个uint8_t参数,返回内存使用率。
3. membase:一个指向uint8_t指针的数组,表示每个SRAMBANK的内存池。
4. memmap:一个指向uint16_t指针的数组,表示每个SRAMBANK的内存管理状态表。
5. memrdy:一个uint8_t数组,表示每个SRAMBANK的内存管理状态是否就绪。

代码还初始化了一个名为malloc_dev的_m_malloc_dev结构体实例,具体赋值如下:

1. init被赋值为my_mem_init函数。
2. perused被赋值为my_men_perused函数。
3. membase被赋值为mem1base和mem2base。
4. memmap被赋值为mem1mapbase和mem2mapbase。
5. memrdy被赋值为0和0

membase被赋值为mem1base和mem2base,memmap被赋值为mem1mapbase和mem2mapbase,
memrdy被赋值为0和0。这些成员是数组,可以存储多个元素。
在提供的代码中,membase是一个指向uint8_t的指针数组,被初始化为包含两个元素mem1base和mem2base的数组。
类似地,memmap是一个指向uint16_t的指针数组,被初始化为包含两个元素mem1mapbase和mem2mapbase的数组。
最后,memrdy是一个uint8_t数组,被初始化为包含两个值为0的元素的数组。
这样可以让结构体存储这些成员的多个值,可以使用数组索引来访问它们。

结构体的实例也可实现多个
struct _m_malloc_dev malloc_dev_array[2] = {     {         my_mem_init,         my_men_perused,         mem1base, mem2base,         mem1mapbase, mem2mapbase,         0, 0     },     {         // 第二个具有不同值的_m_malloc_dev实例         my_mem_init2,         my_men_perused2,         mem3base, mem4base,         mem3mapbase, mem4mapbase,         1, 1     } };在这个示例中,malloc_dev_array是一个_m_malloc_dev结构体的数组。它包含两个结构体实例,每个实例的成员值都不同。

主要区别在于提供的代码定义了一个结构体的单个实例,而结构体数组允许定义多个实例,并可以使用数组索引来访问它们。

 

标签:初始化,malloc,uint8,dev,内存,数组,my,指针
From: https://www.cnblogs.com/mokongking/p/17531968.html

相关文章

  • c语言结构体指针初始化
    结构体定义结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。结构是C编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构体中的数据成员可以是基本数据类型(如int、float、char等),也可以是其他结构体类型、指针类型等......
  • 服务器初始化 步骤
    更新系统包:yum-yupdate  关联包:yuminstallgccgcc-c++makecmakentpredhat-lsblrzszflexbyacclibpcapncursesdevellibpcap-develpsmisc   编译安装iftop安装:yuminstall-yflexbyacclibpcapncurses-devellibpcap-develwgethttp://www.ex-parr......
  • 【树状数组】 POJ 2155 Matrix
    水水的二维树状数组,代码写搓了,找了好久的错。。。#include<iostream>#include<sstream>#include<algorithm>#include<vector>#include<queue>#include<stack>#include<map>#include<set>#include<bitset>#include<cst......
  • 【树状数组】 HDOJ 3743 Frosh Week
    简单的树状数组求逆序数,不过要用到离散化。。。。刚开始没用离散化,就跪了。。#include<iostream>#include<sstream>#include<algorithm>#include<vector>#include<queue>#include<stack>#include<map>#include<set>#include<bitset>#in......
  • 数组计算阶乘
    voidfactoral(intN){intarr[5120]={};intmax=0;arr[0]=1;for(inti=0;i<N;i++){for(intj=0;j<5120;j++)arr[j]*=(i+1);for(intj=0;j<5120;j++){if(0<......
  • linux 中 数组的常见操作
     001、创建数组[root@PC1test02]#ay=(1234)##生成数组[root@PC1test02]#echo${ay[*]}##输出数组1234[root@PC1test02]#echo${#ay[*]}##输出数组的长度4 002、[root@PC1test02]#ay=("a","b","c","x&......
  • 解决升级Jeesite版本(gradle构建),可能导致初始化数据库数据失败的问题?
    1、核心模块core下的资源文件,因存放在java文件路径下,不规范可能导致找不到初始化数据表。报错截图:  解决办法:在core文件夹下的资源文件复制一份初始化数据表。 2.cms文件使用gradle构建时,需要build文件里的jar包,如果缺少可能会报找不到cms初始化数据库文件。  解......
  • 两个数组最小的异或值之和
    1.状态压缩+动态规划顺序不重要,依次枚举数组1的每个数,和数组2进行组合计算classSolution{public:intminimumXORSum(vector<int>&nums1,vector<int>&nums2){intn=nums1.size();if(judge(nums1)||judge(nums2)){intres=0;......
  • 24届秋招专场 · 数组如何用双指针解题呢?
    你好,我是安然无虞。文章目录删除有序数组中的重复项删除排序链表中的重复元素移除元素移除零大家好,近期主要更新数组相关的解题算法咯,感兴趣的老铁可以一起看过来啦。今天更新使用双指针解决数组部分题型,注意哦,这里所说的双指针不是C语言中“指针”的概念,指的是数组的索引下标,......
  • 第3章-栈、队列和数组
    3.1栈顺序栈的基本操作#defineMaxSize10typedefstruct{ //栈的顺序存储类型Elemtypedata[MaxSize]; //静态数组存放栈中元素 inttop; //栈顶指针}SqStack;//Sq:sequence--顺序//初始化栈voidInitStack(SqStack&S){S.top=-1; //初始化栈顶指针......