鱼C论坛

 找回密码
 立即注册
查看: 1419|回复: 8

[已解决]请人看看这个是不是内存泄漏

[复制链接]
发表于 2020-1-20 17:37:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请人看看这个是不是内存泄漏
最佳答案
2020-1-20 19:45:44
第一,是。
第二,你这是照着C的教材在学C++么?写得不伦不类的。。
疑惑.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-20 19:45:44 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
第一,是。
第二,你这是照着C的教材在学C++么?写得不伦不类的。。

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
人造人 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-20 19:58:53 | 显示全部楼层
Croper 发表于 2020-1-20 19:45
第一,是。
第二,你这是照着C的教材在学C++么?写得不伦不类的。。

晕死 怎么不伦不类 你说一下 我好改进 我这是照传智扫地僧的视频写的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-20 20:00:05 | 显示全部楼层
Croper 发表于 2020-1-20 19:45
第一,是。
第二,你这是照着C的教材在学C++么?写得不伦不类的。。

我懂了 是既用malloc  又用new运算符是吧 我这个视频是从c 过渡到C++的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-20 20:02:37 | 显示全部楼层
Croper 发表于 2020-1-20 19:45
第一,是。
第二,你这是照着C的教材在学C++么?写得不伦不类的。。

兄台 问一下 是不是只要写有参构造函数 默认的拷贝构造函数C++编译器就不提供了  那样假如obj2 = obj1;也不能调用默认的前拷贝了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-20 20:13:03 | 显示全部楼层
琴长不过时光 发表于 2020-1-20 19:58
晕死 怎么不伦不类 你说一下 我好改进 我这是照传智扫地僧的视频写的

第一、string.h和malloc.h都是C的库文件。C++里的标准化版本是cstring和memory;C++的库里包含string.h和malloc.h,直接上C++就不应该用这两个库。
第二、既然是C++为什么要用二重指针,指针的引用它不香么?
int operateTeacher(Teacher*& p) {
        if (p == nullptr) {
                p = new Teacher;
        }
        //.....
}

int main() {
        Teacher* pC = new Teacher;
        //......
        operateTeacher(pC);
}
第三、如果是我的话肯定是不会用operateTeacher这种函数名的,它和运算符重载operator Teacher长得太像了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-20 20:18:46 | 显示全部楼层
Croper 发表于 2020-1-20 20:13
第一、string.h和malloc.h都是C的库文件。C++里的标准化版本是cstring和memory;C++的库里包含string.h和 ...

哦哦 谢谢 指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-20 20:18:53 | 显示全部楼层
琴长不过时光 发表于 2020-1-20 20:02
兄台 问一下 是不是只要写有参构造函数 默认的拷贝构造函数C++编译器就不提供了  那样假如obj2 = obj1;也 ...

第一、提供了有参构造函数编译器就不会为你提供默认构造函数了,但是复制构造函数任然会提供。
你说你不能调用默认复制构造函数的话肯定不是这儿的原因。你可以发一下源代码。
第二,即使编译器没有默认提供,你也可以使用
struct A {
        A() = default;
        A(const A&) = default;
};
强制让编译器提供默认版本。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-20 20:20:37 | 显示全部楼层
C++的库里包含string.h和malloc.h

这里少打两个字,应该是“C++的库里包含string.h和malloc.h是为了兼容C语言的代码”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 07:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表