相关疑难解决方法(0)

可以在其范围之外访问局部变量的内存吗?

我有以下代码.

#include <iostream>

int * foo()
{
    int a = 5;
    return &a;
}

int main()
{
    int* p = foo();
    std::cout << *p;
    *p = 8;
    std::cout << *p;
}
Run Code Online (Sandbox Code Playgroud)

而代码只是运行而没有运行时异常!

输出是 58

怎么会这样?本地变量的内存不能在其功能之外无法访问吗?

c++ memory-management local-variables dangling-pointer

990
推荐指数
19
解决办法
26万
查看次数

如何将矢量转换为数组

如何将a转换std::vector<double>double array[]

c++ arrays vector

321
推荐指数
7
解决办法
31万
查看次数

C++从函数返回数组

我需要在数组中读取我的函数,提取数据,然后从函数返回一个数组.

该数组只能保存2个值.

这是我想要做的概念:

int myfunction(int my_array[1])
{
    int f_array[1];
    f_array[0] = my_array[0];
    f_array[1] = my_array[1];

    // modify f_array some more

    return f_array;
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了关于指针等的内容,但是我们非常感到困惑,并希望了解如何最好地解决这个问题的一个非常基本的例子!

谢谢!

c++ arrays return function

5
推荐指数
2
解决办法
2万
查看次数