转换char*时的值不同
Different value when converting char*
我必须将token[1]
转换为vm_address_t
,但这样做会丢失原始值。知道如何转换/转换正确吗?
这是我的代码:
char* ConvertToC(string value){
char *cvalue = &value[0u];
return cvalue;
}
const char* getOffsetToken(string value){
const char *offsettoken;
int n = 0;
const char* token[4] = {};
token[0] = strtok(ConvertToC(value), " ");
if (token[0]) {
for (n = 1; n < 4; n++) {
token[n] = strtok(0, " ");
if (!token[n]) break;
}
}
offsettoken=token[1];
return offsettoken;
}
int main(){
vm_address_t vmp;
const char* cp;
string p1 = "1 0x1000 2 0x0120";
cout << getOffsetToken(p1)<<endl;
cp=getOffsetToken(p1);
cout << cp<<endl;
vmp<<(vm_address_t)cp;
cout << vmp<<endl;
}
输出为:
0x10 ?
0x1000
140734705163168
此
char* ConvertToC(string value){
应该是一个参考参数
char* ConvertToC(string& value){
// ^
否则,返回的地址将引用一个临时副本,并在函数调用后变为无效。
相关文章:
- 将无符号char*转换为std::istream*C++
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 将函数参数"const char*"转换为"std::string_view"是
- C ++如何在使用"tolower"时将char转换为int
- 有没有办法在C++的赋值中将"char**"转换为"double"?
- JavaCPP 错误:无法将参数"1"的"char*"转换为"Abc*
- 为什么从 char 转换为 std::byte 可能是未定义的行为?
- 如何在虚幻引擎4中将char*转换为TCHAR?
- C++:将模板类型 char 转换为 std::string
- strcmp/char* 转换无法按预期工作
- C++中的SQLite char*转换
- 无法从 const char* 转换为 const char *&
- 在 C++ 中将 char 转换为 int,而无需符号位传播
- 如果必须包含西里尔字符,如何将 char* 转换为 std::string?
- 试图使用strCMP时的char转换错误
- 无法从'const char *'转换为'LPCTSTR'
- 将 std::vector<char> 转换为字符* 会导致字符缺陷
- 使用 static_cast 将 char 转换为 int c++
- 如何在 C++(MFC) 中将 char* 转换为 LPCTSTR
- 无法将const char转换为字符串构造字符串