我有一个返回 a 的 ac 方法,const char *
我将此函数导入到我的 specman 代码中。在“e”中执行更多语句后,字符串中的值被破坏。我猜可能是因为它指的是 C 空间中的指针。
C签名:
const char* myFun(const char* key)
{
static string myVal;
myVal = myDictionary[key];
return myVal.c_str();
}
在电子:
myFun(key : string) : string is foreign dynamic C routine
在 e 用法中:
var str : string;
var str2 : string;
str = myFun("my_test");
outf("%s",str) ---> here it gives the correct value
str2 = myFun("my_test2");
----------
----------
outf("%s",str) ---> here it gives some garbage value, statements in the middle doesn't edit this string in anyway.
关于这段代码有什么问题的想法?