I am wondering about this because of scope issues. For example, consider the code
typedef struct { int x1;/*top*/ int x2;/*bottom*/ int id; } sub
For the structure subline_t you've defined, yes, it will always return a copy.
subline_t