一时看不明白你的代码。一个原则是,start指向了谁。如果指向了在这个函数中定义的临时自动型数组,那必然存在返回局部数组指针的问题,就是你说的内存释放问题。这样虽然指针被返回了,但它指向的内容已经不受代码控制了,很危险。但如果start指向的是在主函数中声明的数组,或是全局或静态数组(这个函数中定义的静态数组也行),或者是用动态分配法获得的内存空间且未曾释放,则不存在任何问题,是完全合理合法的。用动态分配法时要注意在不用时释放内存空间,以免造成内存泄漏。
创新互联公司服务项目包括永州网站建设、永州网站制作、永州网页制作以及永州网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,永州网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到永州省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
肯定会释放了,函数调用完成后,函数里的所有局部变量将会被释放。但是你写的这个程序根本就有问题。你所返回的只是一个地址空间,所以一直没变,释放指的是将这个地址里的内容清除掉,以便使其它的数据可以用这个地址的内存。如果没释放的话,其它的数据就用不了这个址址了。
c的内存泄露主要是出在指针上面。对于变量,系统都会在用完后自动释放的。
C管理内存大致可以理解为两种,分配在栈上的,一个是分配在堆上的。
临时变量,动态变量,分配在栈上,运行完,直接弹出栈,就没了。
分配在堆上的内存,释放的时候,基本上可以理解为,指针不指这里了。也就失去了对这块内存的控制。其实所谓的释放。字面意思容易让人理解错。
有些机器有些操作系统,会在释放的时候清空这段内存,但是这种做法效率不高,但是安全,很少有机器这么做,多数都是所谓释放,就是不让你控制这块内存了而已。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款