C++ &引用;使用适当的位掩码进行强制转换”;在使用替代cout时
因此,我决定创建一个控制台类,作为程序包含未定义行为的C++ &引用;使用适当的位掩码进行强制转换”;在使用替代cout时,c++,C++,因此,我决定创建一个控制台类,作为程序包含未定义行为的std::cout的替代 console.log(“字符串”+n)(其中n是一个整数类型)解释如下: const char* tmp_ptr1 = "String "; const char* tmp_ptr2 = tmp_ptr1 + n; console.log(std::string(tmp_ptr2)); 如果n>7或n7或n
std::cout的替代
console.log(“字符串”+n)
(其中n
是一个整数类型)解释如下:
const char* tmp_ptr1 = "String ";
const char* tmp_ptr2 = tmp_ptr1 + n;
console.log(std::string(tmp_ptr2));
如果n>7
或n<0
以上代码执行越界访问。在您的情况下,此访问碰巧从链接到程序数据部分的字符串文本中拾取一些其他(子)字符串,您可以在屏幕上看到它。理论上,任何其他情况都可能发生。您的程序包含未定义的行为
console.log(“字符串”+n)
(其中n
是一个整数类型)解释如下:
const char* tmp_ptr1 = "String ";
const char* tmp_ptr2 = tmp_ptr1 + n;
console.log(std::string(tmp_ptr2));
如果n>7
或n<0
以上代码执行越界访问。在您的情况下,此访问碰巧从链接到程序数据部分的字符串文本中拾取一些其他(子)字符串,您可以在屏幕上看到它。理论上,其他任何事情都可能发生。我现在无法测试它,但是console.log(std::string(“string”)+n)会起作用吗?@quartlyquotaofquetes否,运算符+
不会重载std::string
和整数类型。我现在无法测试它,但会使用console.log(std::string(“string”)+n)做这个把戏吗?@QuarterlyQuotaOfQuotes否,运算符+
对于std::string
和整数类型没有重载。