在Load Runner中将{tempStr}的内容移动到char str []

时间:2013-06-27 03:28:33

标签: c arrays string loadrunner

我是HP Load Runner的新手,正在尝试将现有的C代码转换为与Load Runner兼容。我有一个来自Load Runner的数组tempStr,我试图将其内容放入char str[1024]。我尝试使用strcpy(lr_eval_string("{tempStr}"),str);,但str中的内容仍为空。有谁知道如何将tempStr的内容添加到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.

3 个答案:

答案 0 :(得分:0)

strcpy(string1,string2);中,string2的内容被分配给string1.So如果你想将字符数组tempStr的内容放在`str中,你需要试试这个:

strcpy(str,lr_eval_string("{tempStr}"));。这应该可以解决问题。您可以看到语句over here的相关用法。

您宣布巨额阵营(char str[1024])或c_response的大小可能超过str,这可能是您收到该错误的原因。除此之外,您可以使用malloc动态分配内存,这是一种很好的做法并且被认为是安全的。

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

在C中声明非常大的数组是非常糟糕的做法。只需看一下:How many chars can be in a char array?

答案 1 :(得分:0)

我已经测试了这个并且它的工作非常好,可能还有其他一些问题

char str [1024] =“test”;

lr_output_message(“Value is%s”,str);

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

lr_output_message("Value is %s", str);

答案 2 :(得分: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'基础技能的机会,你现在和未来都需要利用它。