51Testing软件测试论坛
标题:
在脚本中定义几个指针变量 运行的时候老是报内存的错。
[打印本页]
作者:
wzw1982
时间:
2008-4-29 00:29
标题:
在脚本中定义几个指针变量 运行的时候老是报内存的错。
在脚本中定义几个指针变量 运行的时候老是报内存的错。
例如:
char *a="test1", *b="test2";
strcat(a,b);
lr_message(a);
运行的时候报C interpreter run time error: vuser_init.c : Error -- memory violation : Exception ACCESS_VIOLATION received.
作者:
iori
时间:
2008-4-29 09:40
sorry,改一下
char *a="test1", *b="test2";
char c[100];
strcat(c,a);
strcat(c,b);
lr_message(c);
[
本帖最后由 iori 于 2008-4-29 11:13 编辑
]
作者:
huior
时间:
2008-4-29 10:16
为什么不这样写呢?
char a[]="test1", b[]="test2";
strcat(a,b);
lr_message(a);
指针在C中是非常有用的,但在LR脚本中其实可以完全不用指针
作者:
亚瑟王
时间:
2008-4-29 11:16
标题:
回复 3# 的帖子
我用指针来执行,就报错
为什么在LR中用指针就不可以?难道是对指针支持不好吗?
[
本帖最后由 亚瑟王 于 2008-4-29 13:04 编辑
]
作者:
iori
时间:
2008-4-29 12:59
标题:
回复 4# 的帖子
char *a = "test1";
char *b = "test2";
char *c = (char *)malloc(100);
*c= '\0';
strcat(c,a);
strcat(c,b);
lr_message(c);
作者:
sally_0817
时间:
2008-4-29 13:33
char *a="test1", *b="test2";
char c[100];
strcat(c,a);
strcat(c,b);
lr_message(c);
用这个方法是运行通过的啊......
不过还是用三楼的方法来的简单一些
作者:
wzw1982
时间:
2008-4-29 16:00
知道原因了:
你首先要明白char *a="test1",c语言怎么分配地址空间的!
此时你定义了一个指针,但是并没有定义空间存放"test1"而是编译器帮程序找到一个空间存放"test1",显然,把这里的"test1"当成常量并把它放到程序的常量区是编译器最合适的选择,strcat你的目的要把test2存放进去!那怎么可以哦!建议你这么写!先预分配空间!并建议你多看看C语言!这种错误不应该犯哦
char a[12]="test1", *b="test2";
strcat(a,b);
lr_message(a);
作者:
hmilyjch
时间:
2008-4-29 16:16
讲得好!
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2