- 版本
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日