为了账号安全,请及时绑定邮箱和手机立即绑定

怎么查看动态分配内存空间的大小(c语言)?

怎么查看动态分配内存空间的大小(c语言)?

C
BIG阳 2018-10-23 10:09:01
用malloc函数分配的内存空间大小用什么函数能显示出来大小。比如sizeof(int)可显示int空间的大小,p=(int *)malloc(10000)怎么显示出来10000的空间大小
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

1、这个空间是自己分配的,既然已经写了p=(int *)malloc(10000)那就分配10000的大小,还需要显示多少大小。对于一个指向一块内存的指针如果用比如sizeof(p)显示大小(int * p=new int[10]),也只是显示4,代表首地址大小,不能显示正块内存的大小,而且根本没有意义。
2、动态内存分配,可以自由的分配指定大小的内存空间。当程序运行时,程序员并不清楚某一数据需要的具体内存空间大小时,可以使用动态分配。
  malloc函数原型
  void *malloc(int nSize)
  分配一个nSize大小的内存空间,如果分配成功则返回地址空间的首地址,如果分配失败则返货NULL
  nSize一般使用 sizeof(类型A)*N 的计算方式获取大小。意思为:为分配n个类型A所占空间的大小。
  获取的指针地址需要强制转换为指定类型
例如:int *p = (int*)malloc(sizeof(int)*100);
  使用malloc动态分配的内存空间需要使用free函数手动释放。

查看完整回答
反对 回复 2018-11-03
  • 1 回答
  • 0 关注
  • 1090 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信