我将双指针变量传递给为该变量分配内存的函数。指针在函数内部有效,但它不在外面。这是我的代码片段
allocate_mem(XYZ** paVar){
paVar = new XYZ*[10];
}
XYZ** a;
allocate_mem(a);
我不确定我在这里犯了什么错误。如果有人能指出这个错误,我感激不尽。
答案 0 :(得分:3)
如果要将其传递到外部,则需要将引用传递给变量 这样可以更改变量的内容:
allocate_mem(XYZ**& paVar){
paVar = new XYZ*[10];
}
答案 1 :(得分:2)
你想要的是什么:
void allocate_mem(XYZ** paVar){
*paVar = new XYZ[10];
}
XYZ* a;
allocate_mem(&a);
答案 2 :(得分:0)
您可能希望使用vector
尝试完全避免手工制作的内存分配:
typedef std::vector<double> row;
std::vector<row> a(10);
a[1].push(0.5);
...