我对 C/C++ 和 C# 中函数的返回值可用性的概念有疑问。我知道返回指向函数中创建的变量(局部变量)的指针是不正确的。在这种情况下,如果我想创建一个值数组(比如 int)并从函数返回这个数组,我该怎么做?而且,如果我直接返回一个局部变量(而不是通过指向它的指针),运行时何时回收为该变量分配的内存 - 是在返回的值分配给该值的接收者之后吗?
另一个相关问题是在 C# 中:在 C# 中使用“new”运算符在函数中创建的变量是在堆上创建的。在函数中创建局部变量的情况下是真的吗?如果返回的值是引用/地址,是不是违反了上面提到的规则(C++)?在 C# 中实现这一点的方式是什么?
我的问题可能看起来很幼稚,但我试图更好地理解编译器和运行时的行为。如果您能为我提供这些问题的答案,那将是非常有帮助的。
谢谢,拉克什。