OGRFeature的DestroyFeature方法
Ogr的销毁DestroyFeature方法:
1 void OGRFeature::DestroyFeature( OGRFeature *poFeature ) 2 { 3 delete poFeature; 4 }
析构函数中删除了几何对象和空间参考定义, ogrfeature.cpp文件中查看:

1 OGRFeature::~OGRFeature() 2 3 { 4 if( poGeometry != NULL ) 5 delete poGeometry; 6 7 for( int i = 0; i < poDefn->GetFieldCount(); i++ ) 8 { 9 OGRFieldDefn *poFDefn = poDefn->GetFieldDefn(i); 10 11 if( !IsFieldSet(i) ) 12 continue; 13 14 switch( poFDefn->GetType() ) 15 { 16 case OFTString: 17 if( pauFields[i].String != NULL ) 18 VSIFree( pauFields[i].String ); 19 break; 20 21 case OFTBinary: 22 if( pauFields[i].Binary.paData != NULL ) 23 VSIFree( pauFields[i].Binary.paData ); 24 break; 25 26 case OFTStringList: 27 CSLDestroy( pauFields[i].StringList.paList ); 28 break; 29 30 case OFTIntegerList: 31 case OFTRealList: 32 CPLFree( pauFields[i].IntegerList.paList ); 33 break; 34 35 default: 36 // should add support for wide strings. 37 break; 38 } 39 } 40 41 poDefn->Release(); 42 43 CPLFree( pauFields ); 44 CPLFree(m_pszStyleString); 45 CPLFree(m_pszTmpFieldValue); 46 }
作者:太一吾鱼水
文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。
欢迎大家留言交流,转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程