我听说我们不能从函数返回指向本地(自动)数组变量的指针,因为自动变量的范围有限,一旦被调用的函数返回它们就会消失。
char *s getName()
{
char name[]="Sumit"; // Automatic variable
retrun name; // No scope outside the function
}
但在我的脑海中出现了一个疑问:
struct info getInfo(int a,int b)
{
struct info f1; // Automatic variable memory allocated for a structure
f1.a=a;
f1.b=b;
return f1;
}
这里我们还返回对本地分配的内存位置的引用。那么它怎么来这里完美无缺。
PLZ帮助 等待回复
答案 0 :(得分:0)
因为你“实际上”正在返回2个整数(但不完全,但按照类比)。
这与
的原因相同inline int GetZero (int i)
{
int j = i;
return j;
}
GetZero(0);
工程...
此外,您没有返回引用,而是返回值。
这是通过引用返回:
int& GetZero (int i)
显然这是通过指针返回的:
int* GetZero (int i)