matlab c语言编写s函数输出的指针有关问题

matlab c语言编写s函数输出的指针问题
c语言编写s函数 希望输出可以动态变化的 下面是s函数的output函数 要是实现y1[2]动态输出数组a[]中的三个数,但是结果却是y1[2]只能输出数组a的最后一个数3 求解释
static void mdlOutputs(SimStruct *S, int_T tid)
{
  
  int a[3]={1,2,3};
 unsigned int i;
    uint8_T *u1 = (uint8_T *) ssGetInputPortSignal(S,0);
    uint8_T *y1 = (uint8_T *)ssGetOutputPortSignal(S,0);
    real_T       *para1=mxGetPr(ssGetSFcnParam(S,0));
    real_T       *para2=mxGetPr(ssGetSFcnParam(S,1));
    real_T       *para3=mxGetPr(ssGetSFcnParam(S,2));
for(i=0;i<3;i++)
{
  y1[0] = para1[0]*u1[0];
     y1[1] = para2[0]*u1[0];
      y1[2] =a[i];
}
------解决方案--------------------
不要做A语言代码修改为B语言代码的无用功。
也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。
只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。
即可很方便地让A、B两种语言之间协调工作。