扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、nihao是一个字符串常量,存放在静态数据区,你把该字符串常量存放的静态数据区的首地址赋值给了指针,所以fun函数退出时,该该字符串常量所在内存不会被回收,故能够通过指针顺利无误的访问。
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、网站建设、外贸网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的金川网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
2、不回收就会在内存里占着,这段内存不能重新分配使用了。你的程序运行越久,机器内存不能用的越多,后来完全就是卡。很卡。非常卡。
3、首先我想说一下new和delete不是C语言里面的东西,那是C++里面的。
会程序结束后泄漏的内存会被收回的。因为程序结束后,该程序所占用的所有的内存都会被收会。
楼上的不知道不要乱说,这样会误导别人的。首先,malloc分配的内存是在堆上的,这部分内存是程序自己申请的,必须自己去释放。如果,不释放,那么,在程序运行的期间,他会一直占用。当程序结束的时候,他会被操作系统释放。
前,通常会用语句 if (p != NULL)进行防错处理。很遗憾,此时 if 语句起不到防错作用,因为即便 p 不是 NULL 指针,它也不指向合法的内存块。
C语言不会释放。所谓动态内存,是由malloc系列函数进行申请的内存,除非在程序中使用free释放,否则该段内存不会被释放掉。标准库中malloc函数的实现原理。
之后你就可以随意使用它了。用完之后,要使用free函数将这块内存返回给操作系统进行回收。以后其他程序还可以按自己的需要预留这块内存。
1、一般来说,全局变量,静态变量,首先分配,分配在静态存储空间。局部变量,在申明的是后分配,分配在栈上。作用域结束后系统会自动回收。
2、所以说,局部变量要在编译时分配空间,实际上是指,在编译时确定每个变量的相对地址(即偏移量),确定相对地址的前提就是局部变量必须已知类型,大小,否则编译无法通过。
3、局部变量的被分配在栈中,在定义时分配。出作用域后被释放。
4、全局变量,静态局部变量,静态全局变量都在静态存储区分配空间,而局部变量在栈里分配空间 全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流