【发布时间】:2023-03-24 16:40:02
【问题描述】:
void func(int* ptr)
{
ptr = new int;
}
int main()
{
int* ptr;
func(ptr);
*ptr = 2;
}
这是我面临的面试问题之一。在 main() 中,它声明了一个 int 指针,在另一个函数中为其分配内存并尝试在 main() 本身中使用。我认为这在某种程度上是错误的,但是这应该如何工作,知道吗?
【问题讨论】:
-
我认为应该在funct参数上使用引用“&”
-
您没有在任何地方删除指针。那是内存泄漏。另外,正如其他人所说,您需要通过referecne(或ptr到ptr)传递指针。你真的应该初始化所有的局部变量(
int* ptr;这里)。