|
|
1
16
无论编译器做什么或不做什么,都不应该返回对局部变量的引用。编译器很容易上当。您不应该将代码的正确性建立在某些可能尚未触发的警告上。 它没有在这里触发的原因可能是您没有真正地返回对局部变量的引用,而是返回一个对局部变量的引用。编译器可能没有检测到这种更复杂的情况。它只检测到以下情况:
double的情况更简单,因为它不涉及构造和销毁复杂对象,因此在这种情况下,编译器的流控制分析可能在检测错误方面做得更好。 |
|
|
2
6
提及
|
|
|
3
1
gcc以前有一个名为 Named Returns 这让您可以完成相同的任务,但在函数之外分配了空间。不幸的是它已经不存在了;我不知道他们为什么要把它取出来 |
|
|
4
0
关于C++的悬空引用的经典案例。双变量不是调用堆栈,而返回引用是试图访问它,调用编译器设置保护标志。但是,字符串有显式的垃圾收集机制,允许编译器忽略该方案。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |