c++ - 此功能可能有什么问题或不正确?

标签 c++

<分区>

Possible Duplicate:
Can a local variable’s memory be accessed outside its scope?

double* weird( double a, double b )
{ 
    double c;
    c = pow( a + b, 0.5 );
    return &c;
}

对于你们大多数人来说这可能是微不足道的,但我不认为这里会出现什么问题。

最佳答案

这是非常错误的,因为您返回的是指向局部变量的指针。

&c 返回时,作用域为函数 weird 的变量 c 将被销毁,从而为您提供一个指向的指针你内存中的一个随机区域。 这是未定义的行为

关于c++ - 此功能可能有什么问题或不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13000900/

相关文章:

c++ - 减少整体计算时间

c# 将文件指针传递给非托管 c++ dll 以用于标准输出

c++ - Visual Studio 2013 的可再发行组件包中缺少 msvcp120.dll 和 msvcr120.dll

c++ - std::throw_with_nested() 在内存不足的情况下调用 std::terminate()

c++ - 在 meta-toolkit 的 config.toml 中配置默认​​链

c++ - 区分C++中的logic_error

c++ - 如何通过引用将存储在列表中的结构成员传递给函数?

java - 如何混合 C++ Qt 对象和 Qt Jambi 对象

c++ Win32 Api GetMessage 线程内关闭程序

c++ - 可以函数返回 0 作为引用