void QuHang(float A[][],int i,int E,int F,float Uout[][] )
{
int m,n;
float **array;
array=(float**)malloc(E*sizeof(float*)); //Return-Type: void*
for(m=1;m<=E;m++)
{
array[m-1]=(float*)malloc(F*sizeof(float*));
for (n=1;n<=F;n++)
{
array[m-1][n-1]=A[m-1][n-1];
}
}
if ((1<=i)&&(i<=E))
{
for(m=1;m<=F;m++)
Uout[0][m-1]=array[i-1][m-1];
}
for(m=1;m<=E;m++)
{ free(array[m-1]);
}
free(array);
}
这是一个这是用未知大小数组作为形参的一个子函数,实现功能:取出A[E][F]矩阵的第i 行赋给Uout[1][F]矩阵;也就是说A 矩阵和 Tout 矩阵的列数是一样的。
其中形参E 和F 分别是A[][]矩阵的行与列,也可以在主函数中通过函数调用的实参传递给子函数。
这段程序在Wincc脚本里编译是正确的,但是在VC里用一个主函数调用它却运行出错了。求高手看一下这段程序是否正确,若不正确应该怎么改,谢谢!!
最佳答案
感觉这些数据在WINCC里面处理不如在PLC里面处理好些
可以直接用指针循环传递两个DB块之间的数据就行了
就像采样程序或者蒸汽补偿一样
在PLC里面做的好处就是,不论你电脑怎么换,或者多台电脑,只要调用DB块里面的数据就好了。即使电脑死机了也不会影响数据的计算。
提问者对于答案的评价:
好吧,虽然答案不是我需要的,与其关闭掉问题还不如把分数送给你。谢谢啦
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc268014.html