我是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.

最佳答案

strcpy(string1,string2);中将string2的内容分配给string1。因此,如果要将字符数组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?

关于c - 在Load Runner中将{tempStr}的内容移动到char str [],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17334046/

10-11 06:29