要创建结构,我可以执行以下操作之一:
// 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] 删除。
我来说两句