问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-30 02:31

我来回答

4个回答

热心网友 时间:2023-10-06 04:39

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函数手动释放。

热心网友 时间:2023-10-06 04:39

这个空间是你自己分配的,既然已经写了p=(int *)malloc(10000)那就给你分配10000的大小,还需要显示多少大小?
对于一个指向一块内存的指针如果用比如sizeof(p)显示大小(int * p=new int[10]),也只是显示4,代表首地址大小,不能显示正块内存的大小,而且根本没有意义,不就是10吗

热心网友 时间:2023-10-06 04:40

自己malloc出来当然知道字节大小,如果把指针传给一个函数呢,函数如果不知道其空间大小,对其操作时是有很大溢出风险的,但我又不想增加一个传入参数,sizeof()的确算不出指针指向的空间大小,那只能将指针交给与他人使用的时候,把空间大小也告诉对方。所以有时候没办法要妥协一下
只通过指针貌似无法知道指针指向的空间大小,那么free函数又是怎么知道呢。malloc在分配空间的时候会多分配一些空间来存放分配信息。(据说在每个内存块的最前的4个字节就存放了malloc的字节大小信息,可以自己写一个函数把这些数据提出来,我目前还没有试验过)

热心网友 时间:2023-10-06 04:40

在c语言中,要在堆上分配空间,需要使用内存申请函数。一般用malloc。
void
*
malloc(int
size);
可以申请一段长度为size字节的空间,并返回空间的首地址。
要清空分配的内存空间,也就是将该空间所有字节均赋值为0,可以使用memset函数。
该函数声明与string.h中,形式为
void
memset(void
*start,
int
value,
int
size);
如果要清空空间的首地址为p,大小为len,则可以调用
memset(p,
0,
len);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
圈里的数字是怎么来的? 感谢老师的感谢信怎么写 ...仰卧起坐时就像是用头把上身扯自己起来的,腰部也没有以前那... 如何下载电子杂志模板 word中的横线删不掉怎么办 苹果手机不见了,怎么查定位? 新买的导航仪为什么总是反复显示休眠倒计时,而且还充不进去电??? fαn的汉字第三声 这个字是ban吗?(贩) 如何在家自制薯片 C语言中的动态内存分配的用法举例 C语言如何动态分配存储空间 请教理论,为什么需要“动态”分配内存空间? c语言中什么是动态分配内存? 梦见猫被人杀死吊死祭祀 谁知道石家庄,济南,烟台工行ATM站点号为0215是哪啊?我先谢谢了 梦见老公和我在鸡窝打死野猫,猫血溅到我身上 济南工行有几家 梦见老公和我一起杀死一只猫 中国工商银行 地区号1602 网点号0010 梦到老公把小猫活活摔死?? 中国工商银行地区号1309网点号2254具体是哪家银行? 游戏王龙族卡组求改!!! 梦见老公杀野猫 周末,就是今天,东营西城哪个工商银行开门啊?跪求各位大神帮助哈 究极青眼白龙什么卡厉害 究极青眼白龙最强卡组是什么 我梦到老公掐死猫,猫在挣扎的时候咬到我,是什么意思 济南大明湖西南门周围哪里有工商银行啊 昨晚梦见有只猫被老公打死了,然后变成条细小的长虫子一直缠着我,赶都赶不走,我害怕就又把它打死了,又 龙骑士盖亚的介绍 malloc()函数怎么体现动态分配内存?已经分配好的内存,要往里面再加数据,内存空间会自动调大吗? 为什么要使用动态内存分配函数malloc,怎样使用malloc函数? 怎么使用new和delete动态分配内存 如何给二维数组动态分配内存空间(转) 关于C语言动态分配内存的问题 c语言程序怎么实现动态内存分配? 什么是c语言里面的动态存储分配函数啊? C/C++如何分配未知长度的数组的内存空间?动态内存分配? c语言 动态分配内存空间 程序如下:请问哪里错了,应该怎么修改?谢谢 C语言中如何动态增加内存空间 鱼背部的那条鱼腥线在哪?怎么去掉? 如何去掉草鱼的腥线? 北京西直门北大街铁路小区属于哪个区? 中锐股份股票东方财富 中锐股份涨停原因 中锐股份为什么涨停 游泳的解梦 北京市西直门北大街58号院6号楼坐地铁怎么走 北京市西直门北大街49号铁路小区的邮编是多少啊,是海淀区。 北京市海淀区西直门北大街依都阁(19号D室)邮编是什么?