0

我是 HP Load Runner 的新手,正在尝试将现有的 C 代码转换为与 Load Runner 兼容。我有一个tempStr来自 Load Runner 的数组,我试图将其内容放入char str[1024]. 我尝试使用strcpy(lr_eval_string("{tempStr}"),str);,但里面的内容str仍然是空的。有谁知道我怎么能把tempStrto的内容str

编辑:我的代码是:

char str[1024];
strcpy(str,lr_eval_string("{c_Response}"));

我收到以下错误:

Ccode.c(22): Error: C interpreter run time error: Ccode.c (22):  Error -- memory violation : Exception ACCESS_VIOLATION received.
Ccode.c(22): Error: An exception was raised while calling invocation function in interpreter extension cciext.dll: System Exceptions: EXCEPTION_ACCESS_VIOLATION.
4

3 回答 3

0

你有一个类型不匹配, strcpy 需要两个指针。

Action()
{

    char str[500]="";

    lr_save_string("abcdefg123456789","my_foo");

    strcpy((char *)str,lr_eval_string("{my_foo}")); 

    lr_message(str);

    return 0;
}

运行上面的代码,看看会发生什么。了解为什么 (char *) 可以解决问题,然后再继续。这是一个巩固“C”中一些基础技能的机会,您现在和将来都需要利用这些技能。

于 2013-06-27T16:37:29.590 回答
0

strcpy(string1,string2);string2的内容中赋值给string1。所以如果你想把字符数组的内容tempStr放在`str中,你需要试试这个:

strcpy(str,lr_eval_string("{tempStr}"));.这应该可以解决问题。您可以在此处查看该语句的相关用法。

您正在声明 HUGE ARRAY( char str[1024]) 或大小c_response可能超过str,这可能是您收到该错误的原因。取而代之的是,您可以使用 动态分配内存malloc,这是一种很好的做法,并且被认为是安全的。

(通过查看代码,一切看起来都很好,所以再一次,除非你展示整个代码,否则很难说)。

在 C 中声明非常大的数组是非常糟糕的做法。看看这个:多少个字符可以在一个字符数组中?

于 2013-06-27T04:56:42.963 回答
0

我已经对此进行了测试,并且工作正常,可能还有其他问题

字符 str[1024]="测试";

lr_output_message("值为 %s", str);

strcpy(str,lr_eval_string("{NewParam}"));

lr_output_message("Value is %s", str);
于 2013-06-27T13:22:25.123 回答