许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Creo二次开发:内存分配函数

Creo二次开发:内存分配函数

阅读数 26
点赞 0
article_banner
内存导致软件崩溃 有朋友问我在实际的开发过程中,经常碰到莫名其妙的软件崩溃,经过测试发现,是内存分配的错误导致软件崩溃。这次就简单介绍一下Toolkit中的内存分配。




C++中的内存分配 动态内存分配是在使用访问函数以及其他一些函数时经常会用到的,它主要是用来获得一组数据对象。为什么要使用动态内存分配呢?举个例子,当要获得模型所有的特征或者制定类型的特征时,事先并不知道有多少个这样的特征,所以不能事先分配好一个存储容量,而应该在程序中根据实际的数量来分配。 C++中使用new关键字来操作动态内存分配,使用delete 语句来释放分配的内存。delete只能释放由new方法生成的动态内存空间,否则程序会产生运行期间错误,这种错误常常会导致程序立刻关闭。 创建对象: int *p = new int(1024);//创建一个整形指针,用1024初始化 int *pi = new int[1024];//创建一个容量为1024个的数组,首地址赋予pi 删除对象: delete p;//删除 delete pi;//删除 但是在Toolkit中是通过不同的函数来进行内存分配和内存回收的。
Pro/Toolkit中的数组 在Toolkit中通过ProArray来进行定义一个无类型的指针对象,可以存放任何对象。 #include <ProToolkit.h> typedef void* ProArray;
TOOLKIT如何分配内存 对该数组进行空间的分配使用ProArrayAlloc函数,在TOOLKIT中的定义为: ProError ProArrayAlloc( int n_objs, intobj_size, intreallocation_size, ProArray*p_array); n_objs:数组的初始大小。一般传0即可。 obj_size:数组元素的大小(单位为字节),一般传(sizeof(元素类型)获取的大小)。比如数组存放的元素类型为int,传sizeof(int)即可。sizeof操作符会计算出类型占用的字节数。 reallocation_size:当数组空间大小发生变化时,每次递增或递减的大小。如果你没有深入理解ProArray的内存实现,一般可以传5这个经验值。 p_array:数组变量的地址。 使用完成后通过ProArrayFree()函数进行释放内存信息; 在Toolkit中的定义为: #include <ProArray.h> ProError ProArrayFree ( ProArray* p_array //输入需要进行释放内存的数组对象 )
常用函数 1、向数组增加元素 ProError ProArrayObjectAdd( ProArray*p_array, int index, int n_objects, void* p_object); p_array:数组的地址。 index:在何处添加元素,一般传-1,表明在数组最后添加元素。 n_objects:添加元素的数量。 p_object:要添加元素的地址。 ProArrayObjectAdd( (ProArray*)&names,-1,1,&path1); 2、获取数组的成员个数 ProError ProArraySizeGet( ProArrayarray, int* p_size); array:数组。 p_size:接收数组大小变量的地址。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空