我有以下代码.
#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
怎么会这样?本地变量的内存不能在其功能之外无法访问吗?
我需要在数组中读取我的函数,提取数据,然后从函数返回一个数组.
该数组只能保存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)
我已经阅读了关于指针等的内容,但是我们非常感到困惑,并希望了解如何最好地解决这个问题的一个非常基本的例子!
谢谢!