如果要就地定义静态分配的结构,我会:
结构mystructure x={3,'a',0.3};
有没有一种方法可以在C语言中使用malloc实现同样的功能。当然,我可以
struct mystructure x=createNewMystruct(3,'a',0.3),(在这里我将定义createNewMystruct函数),但我想知道是否有其他可能的方法。
谢谢。

最佳答案

我能想到的最接近的是:

struct mystructure *p = malloc(sizeof(*p));
assert(p);
*p = (const struct mystructure){3, 'a', 0.3};

仅限C99,所以如果在MSVC中不起作用,请不要哭着来找我。

10-04 16:23