返回本地结构?

时间:2016-04-26 09:10:14

标签: c struct

I have a code:

struct point makepoint(int x, int y)
{
     struct point temp;
     temp.x = x;
     temp.y = y;
     return temp;
}

我们在这里遇到问题是因为我们正在返回本地结构,在 makepoint 函数终止后它是否被销毁?此代码来自书籍

  

C编程语言(第二版)作者:Brian W. Kernighan•Dennis M. Ritchie

3 个答案:

答案 0 :(得分:2)

temp是一个带有自动存储的变量,所以是的,它会在函数返回时不再可用。

但是,返回的函数的结构不是temp,它是temp的副本。所以答案是函数返回结构没有问题。

答案 1 :(得分:2)

在C中,值会传递,所以就像你一样,不会出现问题。

执行返回时,返回变量temp的值。即使变量在函数返回后被销毁,也不会有问题。

答案 2 :(得分:0)

与数组结构不同,它在作为参数传递时或在返回时被复制,就像原始类型(int)一样。