iCAx开思网

标题: 一些UG/open函数怎么老是出错? [打印本页]

作者: arisegod    时间: 2006-3-13 16:06
标题: 一些UG/open函数怎么老是出错?
据个例子,就是uc1600这个函数怎么也用不了
我完全是根据头文件中的格式啊,这个也会出错?

char *cp1="input a number";
char ca2[133]="123";
int *ir3=NULL;
rcode=uc1600(cp1,ca2,ir3);

希望明白人指教一下吧
作者: zzz    时间: 2006-3-14 09:43
char *cp1="input a number";
char ca2[133]="123";
int  ir3=0;

rcode=uc1600(cp1,ca2,&ir3);
作者: arisegod    时间: 2006-3-14 10:32
多谢了,从道理上来说,有什么区别
我碰到过好多这样的函数,总不能全向您请教

不知有无什么规律啊
作者: jin_chun_ning    时间: 2006-3-15 20:58
用UG/Open做开发的前提是对C和C++的掌握,楼主的问题不是因为对UG/Open不熟悉,而是对C语言掌握不够。
作者: arisegod    时间: 2006-3-17 10:05
int *p;
p不就是地址么?

int p;
&p也是地址
我觉得这样理解是对得啊
作者: jin_chun_ning    时间: 2006-3-17 12:16
int *p; 意味着p是一个指针,它指向某个特定的内存区域,由于没有初始化(不好说p指向那里了)或者是NULL, 这说明它所指向的区域要么是非法的、要么是不存在的, 此时将p用作输出参数就会出错了。你必须为p分配足够的内存空间才可以。

&p 是指“p所在的内存区域”,由于p是存在的, 所以它对应的地址也是合法、有效的,自然就不会出错。

我对改动了一下你的程序,我没有测试过,但是我想应该没有什么问题的。
char *cp1="input a number";
char ca2[133]="123";
int *ir3=NULL;

ir3 = (int *) calloc( 1, sizeof( int ) ); // locate memory for ir3, reture value will store here

rcode=uc1600(cp1,ca2,ir3);

free( ir3); // free memory
ir3 = NULL;
作者: IamWangzai    时间: 2006-3-20 10:52
其实,做二次开发的人,经常是机械工程人员,对于程序设计确实难免有所欠缺,希望大家多交流,高手越来越多了,呵呵
作者: liutaoren1    时间: 2006-3-23 22:55
其实你拿一本c语言的教程,翻一下就明白了。最麻烦的就是指向指针的指针、还有链、树这些。我最近也在学习ug二次开发。不过还在学ug/open grip,很想学ug /open api但是一直找不到这方面的资料。希望多交一些朋友。大家共同学习。共同进步。可以email 给我联系。liuzhiqiangzhj@etang.com
作者: kfzdh207    时间: 2006-9-14 09:55
去哪儿里找UG OPEN的函数库?求救阿!
作者: jnx001    时间: 2006-9-14 12:52
https://www.icax.org/thread-185716-1-1.html




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3