为作为双指针传递的参数分配内存
allocating memory for parameters passed as double pointer
我正在将一个双指针变量传递给为该变量分配内存的函数。指针在函数内部有效,但在函数外部无效。这是我的代码片段
allocate_mem(XYZ** paVar){
paVar = new XYZ*[10];
}
XYZ** a;
allocate_mem(a);
我不确定我在这里犯了什么错误。如果有人能指出这个错误,我将不胜感激。
如果要
将其传递到外部,则需要将引用传递给变量。
这样就可以更改变量的内容:
allocate_mem(XYZ**& paVar){
paVar = new XYZ*[10];
}
你想要的可能是:
void allocate_mem(XYZ** paVar){
*paVar = new XYZ[10];
}
XYZ* a;
allocate_mem(&a);
您可能希望尝试通过使用vector
来避免手动制作的内存分配:
typedef std::vector<double> row;
std::vector<row> a(10);
a[1].push(0.5);
...
相关文章:
- Clang-Format 不能正确分配函数参数
- 为什么不接受具有默认分配参数的函数作为 0-arg 生成器?
- 将共享指针传递给函数参数 - 将其分配给局部变量的正确方法是什么
- 为模板参数类型中的新对象分配内存
- 将指针作为参数分配给类变量,然后使用它抛出读取访问违规
- gtest-将模拟函数参数分配()
- 使用模板类的任意数量的参数分配
- 为作为双指针传递的参数分配内存
- C++ 将字符串参数分配给字符串
- 使用 ** 或 *& 为函数中的参数分配内存
- 如何在C++中从命令行参数分配成员变量
- 通过参数分配指针的值
- 通过构造函数调用中的命名参数分配类变量 C++.
- 将构造函数的参数分配给向量变量
- 为构造函数类中给定的参数分配内存
- 将引用参数分配给局部变量
- 这些参数分配在哪里
- 为什么类成员函数会销毁为指针参数分配的内存
- 根据模板参数分配模板类的静态常量浮点成员
- C++ 使用外部参数分配具有'compound names'变量