C++ 如何解释(const int&a)和new int(a),它做什么?
1.如何解释C++ 如何解释(const int&a)和new int(a),它做什么?,c++,memory,memory-leaks,C++,Memory,Memory Leaks,1.如何解释(const int&a)和新的int(a),它做什么 2.你能给我解释一下内存泄漏的原因吗?根据代码判断,你使用的是c++ 您得到一个新指针c,其值为a,然后创建b,其值与c相同,返回b,将c作为泄漏,因为不再有任何东西指向c 最后: a是常数 b是c的值,它是a c是指向代码中不再引用的新变量的指针 您可能想从中挑选一本入门书,通读一遍,然后重新开始 关于你的问题: const int&a是对名为a的int的常量引用。基本上,它意味着指向某个地方的另一个int变量,其行为与该
(const int&a)
和新的int(a)
,它做什么
2.你能给我解释一下内存泄漏的原因吗?根据代码判断,你使用的是c++ 您得到一个新指针
c
,其值为a
,然后创建b
,其值与c
相同,返回b
,将c
作为泄漏,因为不再有任何东西指向c
最后:
是常数a
是b
的值,它是c
a
是指向代码中不再引用的新变量的指针c
是对名为const int&a
的a
的常量引用。基本上,它意味着指向某个地方的另一个int变量,其行为与该int相同,只是不能更改其值int
意味着您在堆上的某个位置为int变量动态分配内存,并使用值newint(a)
初始化该变量。此表达式返回刚创建的变量的地址a
- 为什么会出现内存泄漏?您使用
语句分配内存,但从不释放它。这应通过以下方式完成:newint(a)
删除c代码>
如注释所示,此函数在返回语句中有未定义的行为,因为您返回了本地变量的地址(您可能需要实际读取C++初学者手册来理解这意味着什么)。< / P>这是哪种语言?我添加了C++标记,但如果不是,将它转换成真正的语言标记。如果你不知道引用是什么,你可能想向C++介绍一本入门书。注意,使用返回值将导致未定义的行为。@ BoGrand,另外两个问题也容易在入门书中找到。
int * myFun(const int & a)
{
int * c = new int(a);
int b = *c;
return &b;
}