char&*是什么意思?

And*_*man 0 c++

这来自Autodesk公司的AutoCAD 2013(ObjectARX SDK)的官方文档:

ObjectARX for AutoCAD 2013:自述文件 - >提示和技巧 - >释放 *字符串作为非常量指针返回:*

当调用返回非常量字符串指针的方法时(例如AcDbSymbolTable::getName(char&* pName)),您应该释放返回的字符串占用的内存.例如:

// The getName() call should be followed by a call to
acutDelString(pLtName);pLtTableRcd->getName(pLtName);
// ... other code
acutDelString(pLtName);
Run Code Online (Sandbox Code Playgroud)

请注意,某些ObjectARX示例文件缺少释放内存的调用,因此它们会出现内存泄漏.在您自己的代码中使用示例时,请确保正确释放内存.

下一个参数类型的含义是什么:

AcDbSymbolTable::getName(char&* pName))
Run Code Online (Sandbox Code Playgroud)

是指针char&吗?凭什么?什么时候使用这样的结构?

谢谢.

Som*_*ude 6

根据顺时针/螺旋规则 pName是指向a的引用的指针char.

我会说有一个指向引用的指针没有多大意义.反过来(引用指针)可能很有用,因为您可以更改函数内部的指针.

  • 它不仅没有意义,它被标准禁止,请参见[dcl.ref]/5 _"不应引用引用,不引用运行时绑定数组,不引用引用数组,也不引用指针引用."_ (11认同)
  • @Bush在这种情况下,我认为它很可能是一个错字,它们的确意味着`AcDbSymbolTable :: getName(char*&pName)`(注意`&`和`*`是相反的). (2认同)