浅谈内存计算

来源:互联网 发布:人民币汇率波动率数据 编辑:程序博客网 时间:2024/06/01 13:11

       从内存的角度来设计程序、编写代码,离不开对内存的时常监控与计算;内存大小的计算与查看也是代码调研很重要的方法手段。

       我们习惯性的使用sizeof()来计算变量或者某种变量类型所占的内存,但是使用sizeof()获取内存大小对于指针(不包含数组名)而言均是4B(32位OS)或者8B(64位OS),而很多内存都是使用指针指向其首地址,再通过指针来使用。所以当程序很复杂时,某指针指向的内存很难快速的评估其大小。

       介绍一个非标准函数_msize(_In_void * _Memory),其包含在头文件malloc.h中。参数为一级指针,返回的结果即是该指针所指向内存的大小。

       使用strlen()时,返回的是该指针所指向的内存实际被利用起来的大小。

                                       

       当然,使用_msize()只是辅助代码调研,要使用它进行编码最好还是进行重写,以便于代码的可移植性。

       当使用sizeof()计算数组名时,返回的是该数组名所指向的内存大小,此时功能同_msize()。

原创粉丝点击