c - 在C中动态分配结构的就地定义

标签 c struct

如果我要在适当的位置定义一个静态分配的结构,我会这样做: struct 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 中不起作用,请不要来找我。

关于c - 在C中动态分配结构的就地定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4144999/

相关文章:

C-execl() : can't execute file located in another directory

c - 我想在 UNIX 中制作复制功能文件

c++ - 用于将结构数组 (AoS) 转换为数组结构 (SoA) 的简洁代码?

在 C 中使用 char 指针创建、返回和转换结构

c - 在另一个结构中声明/定义的结构范围

c# - 从 C# 访问 C DLL 结构中的数组

c - if ('A' <= e <= 'Z' ) 和 if (e > ='A' && e <= 'Z' ) 之间的区别

c - C 中使用结构减少有理数的函数

c++ - C 中的另一个 coredump 问题

struct - 多个结构开关?