51Testing软件测试论坛

标题: 报错:memory violation : Exception ACCESS_VIOLATION received(已解决) [打印本页]

作者: kevin_swpi    时间: 2009-2-1 11:01
标题: 报错:memory violation : Exception ACCESS_VIOLATION received(已解决)
web_reg_save_param("SearchPoNumber",   ...   LAST);
        web_custom_request("        ...        LAST);
        lr_output_message("The searched Ponumber is %s",lr_eval_string("{SearchPoNumber}"));
strcpy(a,lr_eval_string("{SearchPoNumber}"));
        lr_message("PoNumber is %s",a);
======运行到上面一句的时候报错,如下
Action.c(119): Error: C interpreter run time error: Action.c (119):  Error -- memory violation : Exception ACCESS_VIOLATION received.

===这个是什么原因?

[ 本帖最后由 kevin_swpi 于 2009-2-1 11:37 编辑 ]
作者: david.wang    时间: 2009-2-8 20:52
楼主是怎么解决的啊,是脚本有问题,还是系统有问题啊?
我今天也遇到了相同的问题,正在苦恼中。希望楼主能把解决方法贴出来。
作者: aman_cao    时间: 2009-2-9 09:47
呵呵,建议楼主把全部脚本粘出来,
以下只是我的想法,不知道是不是可行
1。检查变量A的类型,是char *还是char a[100]的
2.如果是指针类型,建议改成数组类型。

请楼主实验后站内告诉我一下结果。
作者: wjtest    时间: 2010-5-4 14:21
学习了
作者: wuling823    时间: 2011-8-12 16:45
感谢3楼的,我的根据你的提示修改后,正确,但是原因不明。
作者: 高保真    时间: 2011-8-12 19:12
使用strcpy的时候,src和dest所指向的内存区域不能重叠,并且dest必须要有足够的空间来容纳src。只是单纯的定义个char *a;的话,这时的a是一个非存在或非确定的地址,必须要为a分配确定的内存地址,比如a = (char*)malloc(40); 或者直接定义 char a[40];
作者: Abby312    时间: 2016-3-11 14:57
把指针改成数组就可以了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2