现象:执行脚本时,参数共200个取值,执行到91个取值的时候报错。执行脚本时报错如下:
Action.c(111): Error: C interpreter run time error: Action.c (111): Error -- memory violation : Exception ACCESS_VIOLATION received.
Action.c(111): Notify: CCI trace: Action.c(111): fopen(0x35383131, 0x033d06c6 "ab+")
分析解决:手动在页面上进行操作,发现有页面上有个查询字段为空。当该字段为空时,从关联中获取的取值allinfo会超过180个字符,因此最初定义的buffer数组内存分配有误,导致脚本报错。
char buffer[180]="";
strcpy(buffer,lr_eval_string("{allInfo}"));
解决方法:将数组定义修改为char buffer[200]=""; 即可。 PS:根据需要可以将数组长度设置更长一些。
解决问题思路参考:http://blog.youkuaiyun.com/dream_it_life/article/details/7988138