NX二次开发-UFUN分配内存UF_allocate_memory

  • 版本

NX9+VS2012

  • 例子说明

关于这个分配内存UF_allocate_memory和重新分配内存UF_reallocate_memory,我之前是在唐工的视频中学过。

但是我做了这两年开发,虽然没开发过多少东西。但是还真的从来都没用过分配内存和重新分配内存。

都忘记有这个东西的存在了快。

这东西也就在C语言开发中,才会有,要是用C#开发的话,都不会有指针这些东西。

也不用那么麻烦。

我试过想自己单独写一个新的小例子来说明分配内存,但是想了很长时间,我发现我想不出来。

还是原封不动的照搬唐工视频中的例子吧。顺便打个广告,想系统完整的学习NX建模或者二次开发的,

可以去买唐工的视频https://nxopen.ke.qq.com/#tab=1&category=-1

例子想不出来归想不出来。但是学习肯定不是光抄视频照搬代码就拉倒了(这样永远无法提升技术),要有自我求知探索精神。像刑侦破案一般。

要理解从头到尾的过程,我已经找到了这东西的相关出处,大致的用法。

先看API介绍

分配内存

重新分配内存

在说我找到的出处(搜索方法)

1.首先电脑上安装DocFetcher这个搜索软件

2.搜索范围设置到UGOPEN文件夹,我们都知道所有二次开发的库和例子头文件啥的

都在UGOPEN目录下。

3.直接去搜索UF_allocate_memory,就能看到官方的例子上是怎么用分配内存的了。

  • 源代码

唐工视频中的例子

#include <uf.h>
#include <uf_curve.h>

UF_initialize();

//创建直线
UF_CURVE_line_p_t point1 = NULL;

//分配内存
int error = 0;
point1 = (UF_CURVE_line_p_t)UF_allocate_memory(200*sizeof(UF_CURVE_line_p_t), &error);

//重新分配内存
point1 = (UF_CURVE_line_p_t)UF_reallocate_memory(point1, 300*sizeof(UF_CURVE_line_p_t), &error);

point1->start_point[0] = 0;
point1->start_point[1] = 0;
point1->start_point[2] = 0;
point1->end_point[0] = 10;
point1->end_point[1] = 10;
point1->end_point[2] = 0;

tag_t lineTag = NULL_TAG;
UF_CURVE_create_line(point1, &lineTag);

//释放
UF_free(point1);

UF_terminate();
  • 演示(分配内存后)

  • 不分配内存时的代码(对比一下)
UF_initialize();

//创建直线
UF_CURVE_line_p_t point1 = NULL;

point1->start_point[0] = 0;
point1->start_point[1] = 0;
point1->start_point[2] = 0;
point1->end_point[0] = 10;
point1->end_point[1] = 10;
point1->end_point[2] = 0;

tag_t lineTag = NULL_TAG;
UF_CURVE_create_line(point1, &lineTag);

//释放
UF_free(point1);

UF_terminate();
  • 演示(不分配内存报错情况)

 

阿飞

2021年9月7日

原文地址:https://www.cnblogs.com/nxopen2018/p/15240675.html