我是 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 的相关用法。 .
您正在声明 HUGE ARRAY (char str[1024]
) 或 c_response
的大小可能大于 str
,这可能是您收到该错误的原因。相反,您可以使用 malloc
动态分配内存,这是一种很好的做法,并且被认为是安全的。
(通过查看代码,一切看起来都很好,所以,再次强调,除非您显示整个代码,否则很难说)。
在 C 中声明非常大的数组是非常糟糕的做法。看看这个:How many chars can be in a char array?
关于c - 将 {tempStr} 的内容移动到 Load Runner 中的 char str[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17334046/