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