我可以返回包含来自函数的数组的 struct 吗?或者它是未定义的beahvior?
我使用什么标准有关系吗?
例如:
#include <string.h>
typedef struct struct_t{
char arr[100];
int number;
} struct_t;
struct_t func(void)
{
struct_t s1 = {.number = 0};
memcpy(s1.arr, "Hello World", 100);
return s1;
}
int main(void)
{
struct_t s2 = func();
return 0;
}
它会将s1.arr深度复制到s2.arr吗?
如果不是,s2.arr是否会try 指向与s2.arr相同的位置?
也许它创建了一个新数组,并且只将s1.number复制到s2.number?
还是仅仅是UB?