
使用malloc和free有哪些注意事项?
展开全部
malloc/free可以在C和C++中使用,而new/delete只能在C++中使用。
在C++中对于内部数据类型而言,只用malloc/free无法无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,才有了new/delete。
用new/delete可以完成对动态对象的内存管理,而malloc/free不行。
注意事项:malloc次数与free次数需对应,free次数少了会造成内存泄露(不易发现),多了则会造成段错误。可以设置一个int 类型的malloc_num每当malloc后malloc_num ++, free后malloc_num --;程序结束时判断malloc_num是否为0则可知是否遗漏。
new/delete:每个构造函数有new则析构函数就有delete。
写这么多不容易,希望对你有帮助,望采纳。
不清楚的继续问
在C++中对于内部数据类型而言,只用malloc/free无法无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,才有了new/delete。
用new/delete可以完成对动态对象的内存管理,而malloc/free不行。
注意事项:malloc次数与free次数需对应,free次数少了会造成内存泄露(不易发现),多了则会造成段错误。可以设置一个int 类型的malloc_num每当malloc后malloc_num ++, free后malloc_num --;程序结束时判断malloc_num是否为0则可知是否遗漏。
new/delete:每个构造函数有new则析构函数就有delete。
写这么多不容易,希望对你有帮助,望采纳。
不清楚的继续问
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-02-18 广告
作为上海联韬企业管理咨询有限公司的工作人员,对于APICS相关认证有所了解。但“APICS SCOR”可能是一个误解或输入错误,因为APICS并未直接推出名为“SCOR”的认证项目。SCOR模型(Supply Chain Operation...
点击进入详情页
本回答由上海联韬企业提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询