动态数组用一级指针还是二级指针?

Posted coding码场

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态数组用一级指针还是二级指针?相关的知识,希望对你有一定的参考价值。

  在实际开发中,经常遇到要存储一些对象,比如添加一些任务,然后一次性提交给硬件去执行。在使用中,每次添加的任务数又是不大一样的,那么我们怎么存储好任务数据呢?

   假设我们有一个结构体如下:

typedef struct _JOB_S 
    TR_BOOL bValid;
    Job_WROK_TYPE_CLASS_E enJobWorkTypeClass;
    TASK_ATTR_S     stTaskAttr;
    TR_S32 s32TotalNum;
    TR_U8 u8ArrayValidNum;
    TR_U8 u8ArrayTotalNum;
    JOB_Task_S *pJobTask;
V_JOB_S;

pJobTask我们到底用一级指针,还是用二级指针?区别:

 

一级指针:好处,你要存储多少个成员就申请多少个NODE空间,后面再要添加的时候,就采用remalloc的方式来解决。操作数据方便,查找方便效率高。

                弊端:需要连续的空间,如果需要大块大块的,可能有remalloc失败的风险。

 二级指针:好处:可以利用一些零碎一点的空间,不需要很大的一块连续空间;

               弊端:操作麻烦,查找效率不高,要先申请存放指针的空间,然后再去申请NODE的空间,相对麻烦一些。 

         那我们怎么采用呢?

       我的建议,在买个NODE内存单元不大的情况下,采用一级指针更好一些。如果想图像块一样的大内存,就采用二级指针灵活一些。

以上是关于动态数组用一级指针还是二级指针?的主要内容,如果未能解决你的问题,请参考以下文章

动态数组用一级指针还是二级指针?

动态数组用一级指针还是二级指针?

数组指针是二级指针吗?请解释一下!谢谢!

一级指针,二级指针,指针数组,数组和指针

二级指针的用法?

关于二级指针与一级指针相互转换的问题!