美文网首页
gdal中类的内存管理

gdal中类的内存管理

作者: loloxiaoz | 来源:发表于2017-08-20 10:44 被阅读0次

今天遇到一个很奇怪的问题,关于GDAL库的使用。
在一个dll中调用GDAL中的OGRSpatialReference类,在这个dll中的使用sizeof求OGRSpatialReference的大小,与在dll外,使用sizeof求得OGRSpatialReference的大小竟然不一样,一个是40,一个是48。导致在dll外动态分配的OGRSpatialReference内存,在dll内删除会出错。
  于是有了以下几种猜测。
1、gdal的版本问题,可能不是要VS2008编译的gdal库,但检查了gdal的库的版本,是没有问题。
2、工程配置问题,对比了dll与调用该dll的主程序配置,没有发现异常的地方。
3、内存对齐,但使用的是同一个OGRSpatialReference类,怀疑是变量的先后声明导致的问题,说不通。
  最后的解决方案是,在dll内重新编写个接口类,在这个类中分配内存,然后在这个dll内删除内存。问题解决。但在dll内与外求得的OGRSpatialReference大小不一样的原因还是不清楚,希望有人能解释

相关文章

  • gdal中类的内存管理

    今天遇到一个很奇怪的问题,关于GDAL库的使用。在一个dll中调用GDAL中的OGRSpatialReferenc...

  • iOS 内存管理基础

    一、Object C中内存管理的对象 在iOS开发中,内存中的对象有两类,一类是值类型,例如:init、float...

  • 类的创建与销毁(二)

    销毁实例时注意事项 内存泄露 出现内存泄露的3种常见情况及应对原则 类中存在自我管理内存现象 类中存在容器(如数组...

  • Objective-C的内存管理(1)——内存管理概述

    概述 应用程序开发中,内存管理是个重要的话题。 简单而言,语言层面的内存管理基本有三类: 1. 纯粹的手动管理 如...

  • Java学习笔记4(对象与内存的控制)

    Java 内存管理分为:内存分配和内存回收实例变量 和 类变量 局部变量 特点:作用时间短,存储在方法的栈内存中 ...

  • @property修饰符

    @property( )int age;restent自动管理内存(对象类型set内存管理)assign基本数据类...

  • JavaScript —— 内存管理及垃圾回收

    目录 JavaScript内存管理内存为什么需要管理?内存管理概念JavaScript中的内存管理JavaScri...

  • 深入浅出Objective-C笔记(七)

    内存管理初步 ObjC主要运用变量与对象间的引用关系来简化内存管理工作。 引用关系 前几节的例子在类中的属性变量都...

  • [Java] JVM

    1 内存管理 1.1 方法区(Method Area) 存放类的信息(类名/修饰符/类中字段和方法等)静态变量构造...

  • Java类加载机制

    类加载机制 在Java面试中类加载机制是十分常见的考察点,时常和JVM内存模型,JVM内存管理,反射等知识点穿插考...

网友评论

      本文标题:gdal中类的内存管理

      本文链接:https://www.haomeiwen.com/subject/pmqfdxtx.html