小编Whe*_*ley的帖子

在 C 函数中返回一个结构体可以吗,还是返回一个指向用 malloc() 创建的结构体的指针更好?

两种选择都是合法的,但哪一种更好或更“干净”:

假设我们有这样的结构:

typedef struct MyStruct {
int val;
} MyStruct;
Run Code Online (Sandbox Code Playgroud)

第一个选项;直接返回一个结构体:

MyStruct Create()
{
MyStruct a;
a.val = 0;
return a;
}
Run Code Online (Sandbox Code Playgroud)

第二个选项:在堆上创建结构并返回指针:

MyStruct* CreatePtr()
{
MyStruct *a = (MyStruct*)malloc(sizeof(MyStruct));
a->val = 0;
return a;
}
Run Code Online (Sandbox Code Playgroud)

我认为最好的选择取决于结构的大小,但也许它们是更多需要考虑的事情?

c struct function return-type

-1
推荐指数
1
解决办法
118
查看次数

标签 统计

c ×1

function ×1

return-type ×1

struct ×1