在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;
}
Run Code Online (Sandbox Code Playgroud)
当我只检查ASCII值时val[0]它是0.但是在G ++下,文本HELLO会显示出来.
从const char*到char*的转换是非标准的,其结果未定义?