我最近有一个任务,我必须为结构动态分配内存。我用了这个方法:
myStruct *struct1 = malloc(sizeof *struct1);
这很管用但是,我不明白怎么做。我认为
struct1
指针在那一点上没有初始化,因此应该没有任何大小因此,malloc(sizeof *struct1)
如何返回要分配的有效内存量? 最佳答案
sizeof
C中的运算符不计算操作数。它只是看看类型例如:
#include <stdio.h>
int main(void)
{
int i = 0;
printf("%zu\n", sizeof i++);
printf("%d\n", i);
return 0;
}
如果运行上述程序,您将看到
i
仍然是0。因此,在您的示例中,
*struct1
不计算,它只用于类型信息。关于c - 如何在C中动态分配结构?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15650858/