用malloc初始化结构

卡尔·希亚斯

要创建结构,我可以执行以下操作之一:

// Method 1
Item *item = malloc(sizeof(Item));
Item _item = {.name="job"};
item = &_item;

// Method 2
Item *item = malloc(sizeof(Item));
item->name="job";

有没有更简单的方法可以做到这一点?也许是这样的:

malloc(sizeof(Item)) & (Item) {.name="job"}

这是两种方法:https : //godbolt.org/z/MfYGW3

进口加快

您是否正在寻找这样的东西?

#include <stdlib.h>

typedef struct {
    const char* name;
} Item;

int main() {
    Item* item = malloc(sizeof(Item));
    *item = (Item){.name = "Hello"};
    // do work    
    free(item);
    return 0;
}

使用GCC 10.2.0编译,-Wall -Wextra没有错误或警告。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章