求救:关于使用sqlda出现memory fault(coredump)问题

outofrecycle 2008-03-06 03:35:25
这是《INFORMIX ESQL/C应用开发》书的一个例子,编写后出现了上述问题,主要部分的代码如下:
#INCLUDE "stdio.h"
$include sqlca.h;
$include sqlstype.h;
main()
{
exec sql begin declare section;
char fn[]="aaaa";
char ln[]="bbbb";
exec sql end declare section;
1 struct sqlda *descp;
2 $database stores_demo;

3 $prepare updateSta from "update customer set fname=?,lname=? where costomer_num=102";
4 $describe updateSta into descp;

5 $int count=2;
6 descp->sqlvar=(struct sqlvar_struct *)calloc(coutn,sizeof(struct sqlvar_struct));

7 descp->sqld=count;
8 desc[->sqlvar[0].sqldata=fn;
9 descp->sqlvar[0].sqltype=0;
10 descp->sqlvar[0].sqllen=20;
11 desc[->sqlvar[1].sqldata=ln;
12 descp->sqlvar[1].sqltype=0;
13 descp->sqlvar[1].sqllen=20;

14 $execute updateSta using descriptor descp;
15 $close database
}

以上程序esql可以通过,运行时候出现了memory fault问题。
检查发现主要是第6行为sqlvar分配内存时存在问题,大家帮忙分析一下怎么回事啊
刚接触esql/c,不是很熟悉,谢谢大
...全文
578 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

1,195

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧