我有这样的功能
void some_func(some_type *var)
{
// do something a get a var2 of type some_type*
var = var2;
}
我主要有
some_type *var;
some_func(var);
print_var(var);
但是当我运行程序时出现分段错误。调试显示print_var是问题所在,好像var没有任何价值。var2是使用初始化的new some_type,所以我认为我不需要为var.
但是当我var = new some_type在 main 中进行操作并手动克隆(将每个数据复制var2到var)中时some_func,我没有收到错误消息。
我的问题在哪里?我真的不习惯指针和内存分配的东西,但我认为这两种方式都应该有效。我错了吗?
也许主要问题是当我new在函数中分配一个指针,然后将它的地址保存在指针的参数中,当函数完成时内存是否会被释放?