fenfen 发表于 2009-1-13 21:13:17

调用CIN节点,输出参数为数组,需要在C程序中为数组开辟内存空间么?

想用CIN节点,对采集的波形数据进行压缩运算,每隔一段对应位置的数据点相加(类似降采样),输出新的数组。

需要处理的数据量很大,大概5120000个采样点。

我在代码中仅那定义了输出数组的长度,这样可以么? 
调用此CIN时会弹出对话框出错,显示:“xxx”指令引用的内存“xxx”,该内存不能为“written”。

是不是需要对输出数组开辟内存空间?

typedef struct {
int32 dimSize;
float64 elt;
} TD1;
typedef TD1 **TD1Hdl;

MgErr CINRun(TD1Hdl x,TD1Hdl y);

MgErr CINRun(TD1Hdl x,TD1Hdl y)
{

    float64 *xElmtp, *yElmtp;
 length=(*x)->dimSize;
  length2=length/4;

 (*y)->dimSize=length2;//定义输出数组的长度
 xElmtp=(*x)->elt;
    yElmtp=(*y)->elt;
 。。。。。此处省略

 return noErr;
}

lgh269 发表于 2009-1-13 21:36:25

操作内存空间会有问题,用CIN?
为什么不用mathscript呢,

fenfen 发表于 2009-1-16 16:23:39

主要是为了提高运算速度。
用mathscrip运算速度比用LV自带函数还差。
昨天用CIN节点成功了,速度提高了十倍。!
页: [1]
查看完整版本: 调用CIN节点,输出参数为数组,需要在C程序中为数组开辟内存空间么?