存储方法、装置、终端设备及计算机可读存储介质制造方法及图纸

技术编号:36735777 阅读:21 留言:0更新日期:2023-03-04 10:06
本申请适用于计算机技术领域,提供了一种存储方法、装置、终端设备及计算机可读存储介质,应用于存储空间,存储空间中包括至少一个碎片空间,每个碎片空间的前端和/或后端为已用空间,所述方法包括:获取第一地址,第一地址为存储数据的起始地址;当第一地址不属于存储空间中的任意一个碎片空间,确定第一地址的越界范围;获取目标空间的起始地址,其中,目标空间为存储空间中的任意一个碎片空间;根据第一地址的越界范围和目标空间的起始地址计算第二地址;将存储数据的起始地址从第一地址更新为第二地址。通过上述方法,有效避免了越界存储情况的发生。储情况的发生。储情况的发生。

【技术实现步骤摘要】
存储方法、装置、终端设备及计算机可读存储介质


[0001]本申请属于计算机
,尤其涉及一种存储方法、装置、终端设备及计算机可读存储介质。

技术介绍

[0002]终端设备在使用一段时间之后,随着终端设备的存储空间的频繁分配和释放,终端设备的存储空间中会产生碎片空间。当存储空间中包括较多碎片空间时,容易发生越界存储的情况。例如,当存储地址超过了碎片空间的地址范围(即落入已用空间),将会破坏已用空间内的数据。越界存储情况的发生,容易导致相关程序的崩溃、降低程序运行的安全性。

技术实现思路

[0003]本申请实施例提供了一种存储方法、装置、终端设备及计算机可读存储介质,可以有效避免越界存储情况的发生,进而提高程序运行的安全性。
[0004]第一方面,本申请实施例提供了一种存储方法,应用于存储空间,所述存储空间中包括至少一个碎片空间,每个所述碎片空间的前端和/或后端为已用空间,所述方法包括:
[0005]获取第一地址,所述第一地址为存储数据的起始地址;
[0006]当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围,所述越界范围用于表示所述第一地址所属的已用空间的地址范围;
[0007]获取目标空间的起始地址,其中,所述目标空间为所述存储空间中的任意一个所述碎片空间;
[0008]根据所述第一地址的越界范围和所述目标空间的起始地址计算第二地址;
[0009]将所述存储数据的起始地址从所述第一地址更新为所述第二地址。
[0010]本申请实施例中,当存储数据的起始地址越界时,获取目标空间的起始地址,相当于确定出即将跳转到的碎片空间;根据存储数据的起始地址的越界范围和目标空间的起始地址计算第二地址,将存储数据的起始地址更新为第二地址,即调整存储数据的起始地址。通过上述方法,能够在存储数据的起始地址越界时,及时调整存储数据的起始地址,有效避免了越界存储情况的发生,进而提高了程序运行的安全性。
[0011]在第一方面的一种可能的实现方式中,在当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围之前,所述方法还包括:
[0012]若所述第一地址满足第一预设条件或第二预设条件,则所述第一地址不属于所述存储空间中的任意一个所述碎片空间;
[0013]其中,所述第一预设条件为所述第一地址大于第i个碎片空间的结束地址、且小于第i+1个碎片空间的起始地址,所述第二预设条件为所述第一地址小于第1个碎片空间的起始地址或大于第N个碎片空间的结束地址,其中,i为小于N的正整数,所述N为所述存储空间中所述碎片空间的总个数。
[0014]在第一方面的一种可能的实现方式中,所述当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围,包括:
[0015]当所述第一地址不属于任意一个所述碎片空间,判断所述第一地址是否大于第j个碎片空间的结束地址,其中,j为小于或大于N的正整数,所述N为所述存储空间中所述碎片空间的总个数;
[0016]若所述第一地址大于所述第j个碎片空间的结束地址,则根据所述j的大小确定所述第一地址的越界范围。
[0017]在第一方面的一种可能的实现方式中,所述若所述第一地址大于所述第j个碎片空间的结束地址,则根据所述j的大小确定所述第一地址的越界范围,包括:
[0018]若所述第一地址大于所述第j个碎片空间的结束地址,则判断所述j是否小于所述N;
[0019]若所述j小于所述N,则判断所述第一地址是否小于第j+1个碎片空间的起始地址;
[0020]若所述第一地址小于所述第j+1个碎片空间的起始地址,则将所述第j个碎片空间后端的已用空间的地址范围确定为所述第一地址的所述越界范围;
[0021]若所述j等于所述N,则所述第一地址的所述越界地址为大于所述第j个碎片空间的结束地址。
[0022]在第一方面的一种可能的实现方式中,所述根据所述第一地址的越界范围和所述目标空间的起始地址计算第二地址,包括:
[0023]计算所述第一地址的越界范围的起始地址和所述第一地址的地址差值;
[0024]根据所述地址差值和所述目标空间的起始地址计算所述第二地址。
[0025]在第一方面的一种可能的实现方式中,所述方法还包括:
[0026]当所述第一地址属于所述存储空间中的任意一个所述碎片空间,所述存储数据的起始地址维持所述第一地址。
[0027]在第一方面的一种可能的实现方式中,在将所述存储数据的起始地址从所述第一地址更新为所述第二地址之后,所述方法还包括:
[0028]当所述第二地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第二地址的越界范围;
[0029]根据所述第二地址的越界范围和所述目标空间的起始地址计算第三地址;
[0030]将所述存储数据的起始地址从所述第二地址更新为所述第三地址。
[0031]第二方面,本申请实施例提供了一种存储装置,应用于存储空间,所述存储空间中包括至少一个碎片空间,每个所述碎片空间的前端和/或后端为已用空间,所述装置包括:
[0032]第一获取单元,用于获取第一地址,所述第一地址为存储数据的起始地址;
[0033]越界确定单元,用于当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围,所述越界范围用于表示所述第一地址所属的已用空间的地址范围;
[0034]第二获取单元,用于获取目标空间的起始地址,其中,所述目标空间为所述存储空间中的任意一个所述碎片空间;
[0035]地址计算单元,用于根据所述第一地址的越界范围和所述目标空间的起始地址计算第二地址;
[0036]地址更新单元,用于将所述存储数据的起始地址从所述第一地址更新为所述第二地址。
[0037]第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面中任一项所述的存储方法。
[0038]第四方面,本申请实施例提供了一种计算机可读存储介质,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的存储方法。
[0039]第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的存储方法。
[0040]可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
[0041]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存储方法,其特征在于,应用于存储空间,所述存储空间中包括至少一个碎片空间,每个所述碎片空间的前端和/或后端为已用空间,所述方法包括:获取第一地址,所述第一地址为存储数据的起始地址;当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围,所述越界范围用于表示所述第一地址所属的已用空间的地址范围;获取目标空间的起始地址,其中,所述目标空间为所述存储空间中的任意一个所述碎片空间;根据所述第一地址的越界范围和所述目标空间的起始地址计算第二地址;将所述存储数据的起始地址从所述第一地址更新为所述第二地址。2.如权利要求1所述的存储方法,其特征在于,在当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围之前,所述方法还包括:若所述第一地址满足第一预设条件或第二预设条件,则所述第一地址不属于所述存储空间中的任意一个所述碎片空间;其中,所述第一预设条件为所述第一地址大于第i个碎片空间的结束地址、且小于第i+1个碎片空间的起始地址,所述第二预设条件为所述第一地址小于第1个碎片空间的起始地址或大于第N个碎片空间的结束地址,其中,i为小于N的正整数,所述N为所述存储空间中所述碎片空间的总个数。3.如权利要求1所述的存储方法,其特征在于,所述当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围,包括:当所述第一地址不属于任意一个所述碎片空间,判断所述第一地址是否大于第j个碎片空间的结束地址,其中,j为小于或大于N的正整数,所述N为所述存储空间中所述碎片空间的总个数;若所述第一地址大于所述第j个碎片空间的结束地址,则根据所述j的大小确定所述第一地址的越界范围。4.如权利要求3所述的存储方法,其特征在于,所述若所述第一地址大于所述第j个碎片空间的结束地址,则根据所述j的大小确定所述第一地址的越界范围,包括:若所述第一地址大于所述第j个碎片空间的结束地址,则判断所述j是否小于所述N;若所述j小于所述N,则判断所述第一地址是否小于第j+1个碎片空间的起始地址;若所述第一地址小于所述第j+1个碎片空间的起始地址,则将所述第j个碎片空间后端的已用空间...

【专利技术属性】
技术研发人员:蒋文王和国汤功超
申请(专利权)人:深圳云天励飞技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1