这来自Autodesk公司的AutoCAD 2013年正式文档(ObjectARX SDK):
ObjectARX for AutoCAD 2013:自述->提示和技术->释放*字符串返回为非const指针:* 当调用返回非const字符串指针的方法(例如,
AcDbSymbolTable::getName(char&* pName)))时,您应该释放返回的字符串占用的内存。例如: // getName()调用后面应该是对getName // .其他代码acutDelString(pLtName); 请注意,一些ObjectARX示例文件缺少释放内存的调用,因此它们将显示内存泄漏。在您自己的代码中使用这些示例时,请确保正确地释放内存。
下一个参数类型意味着什么:
AcDbSymbolTable::getName(char&* pName))是指向char&的指针吗?在什么意义上?什么时候使用这样的结构?
谢谢。
发布于 2013-07-05 07:54:24
根据顺时针/螺旋规则,pName是指向char引用的指针。
我要说的是,有一个指向引用的指针没有多大意义。相反,(对指针的引用)可能很有用,因为您可以在函数中更改指针。
发布于 2013-07-05 08:53:37
这是文档中的一个错误;它们的意思是AcDbSymbolTable::getName(char*& pName))。
如果您这样阅读,那么该段的其余部分非常有意义:getName是一个函数,它通过声明为引用字符串的out参数检索字符串(char *)。它甚至还说返回的“字符串”必须使用acutDelString释放。
如果查看头文件中的实际声明,很可能会发现声明为char*&的参数。
https://stackoverflow.com/questions/17483791
复制相似问题