iCAx开思工具箱
标题:
内存冲突
[打印本页]
作者:
刘亮
时间:
2004-9-8 11:09
标题:
内存冲突
我想用程序查询当前显示部件的表达式的值,再乘一个系数来改变表达式的值,执行时出现如附件所示的错误,兄弟们,帮我看看阿,该要释放的内存
我都UF-free了阿。高手,是什么问题阿
代码如下:
static double UF_MODL_ask_exp_value(char *exp_str) //得到一个EXPRESS表达式的值
{
tag_t exp_tag;
char *l_str,*r_str;
double value;
UF_MODL_dissect_exp_string(exp_str,[$l_str,&r_str,&exp_tag)]
UF_free(l_str);
UF_free(r_str);
if(!UF_MODL_ask_exp_tag_value(exp_tag,&value))
return value;
else
return 0.0;
}
//----------------------------------------------------------------------------
// Activation Methods
//----------------------------------------------------------------------------
// Unigraphics Startup
// This entry point activates the application at Unigraphics startup
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
{ int number_of_exps,i;
tag_t *exps;
char *string,*string1;
tag_t part_tag;
double* a;
double b;
/* Initialize the API environment */
int errorCode = UF_initialize();
if ( 0 == errorCode )
{
/* TODO: Add your application code here */
part_tag=UF_PART_ask_display_part();//查询部件的标识
UF_MODL_ask_exps_of_part( part_tag,[$number_of_exps,&exps)]//根据部件的标识获得所有表达式的标识
for(i=0;i<number_of_exps;i++)
{
UF_MODL_ask_exp_tag_string(exps
,[$string)]//利用表达式标识获得表达式字符串
a
=UF_MODL_ask_exp_value(string);//利用表达式字符串获得表达式的右值
UF_free(string);
}
UF_free(exps);
b=3*a[1];
sprintf(string1,"p1=%f",b);
string=string1;
UF_MODL_edit_exp(string);
UF_MODL_update();
/* Terminate the API environment */
errorCode = UF_terminate();
作者:
csftiger
时间:
2004-9-8 12:32
string1没Malloc空间,就sprintf(string1,"p1=%f",b); 当然出错了。
C语言的问题
作者:
刘亮
时间:
2004-9-8 15:05
说得有道理,我试一试,好郁闷,c都没有学好,还要做二次开发!!!
谢谢仁兄!!!
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3