在 VC++ 中,当我对 to 返回的值进行类型转换并const char*
打印转换后的值时,屏幕上不会打印任何内容。这是代码片段std::string::c_str()
char*
#include "stdafx.h"
#include <string>
using namespace std;
string test() { return(string("HELLO"));}
int _tmain(int argc, _TCHAR* argv[])
{
char* val;
val = (char*) test().c_str();
printf("\n %s\n", val);
return 0;
}
当我简单地检查 ASCII 值时,val[0]
它是 0。但是在 G++ 下,文本HELLO
会显示出来。
从 const char* 到 char* 的强制转换是非标准的,其结果未定义吗?