原帖由 naihe2010 于 2009-11-7 11:23 发表
如果真的是这个流程的话,应该是没有问题的。
另外,我觉得这种程序流程不好,还是在循环之前,申请一个“足够”大的内存,循环完了再释放吧。
原帖由 Hex_water 于 2009-11-7 14:57 发表
如果在循环里我用数组的都就不会Core,但是数组就得事先定义一个大小,而CLOB字段的数据,最大可以达到4G字节,所以才改为根据CLOB字段实际长度动态申请内存空间。
循环500次,是因我前 ...
原帖由 Hex_water 于 2009-11-7 15:09 发表
char *XmlTemp=NULL;
char *XmlData=NULL;
int XmlLength=4001;
init(v_det_flag);
strncpy(v_det_flag,v_order_data.det_flag,1);
if (strcmp(v_det_flag,ORDERDETFLAG_Y)==0) /*如果有明细数据*/
{
E ...
原帖由 naihe2010 于 2009-11-7 18:08 发表
你这块代码虽然错误不少,但是最可疑的地方在
v_ret=OrderParseXml(&vMsgBodyType,XmlData,v_order_data.order_type,XmlLength,&RecordNum);
这句里的XmlLength,如果
{
XmlData=&v_order_da ...
原帖由 Hex_water 于 2009-11-7 15:09 发表
char *XmlTemp=NULL;
char *XmlData=NULL;
int XmlLength=4001;
init(v_det_flag);
strncpy(v_det_flag,v_order_data.det_flag,1);
if (strcmp(v_det_flag,ORDERDETFLAG_Y)==0) /*如果有明细数据*/
{
E ...
原帖由 huangwei0413 于 2009-11-7 19:54 发表
开始
XmlTemp=(char *)malloc((XmlLength+12*sizeof(char));
memset(XmlTemp,'3',sizeof(char)*XmlLength+12;
然后
strcat(XmlTemp,"\0"
越界!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |