【发布时间】:2019-09-23 16:28:56
【问题描述】:
为什么在声明结构指针的时候需要分配内存
struct A{
///
};
int main(void)
{
struct A *var=(struct A*)malloc(sizeof(struct A));
//
//
}
但是当我们声明一个结构变量时,我们不需要分配任何内存?
struct A var;
【问题讨论】:
-
一种或另一种方式,如果你想使用一个指向结构的指针,你需要它指向有效的东西。这可能是动态的(如您在第一个示例中所示),但它也可以很容易地是自动的(
struct A var, *pvar = &var;)。一本好的 C 书籍和/或教程涵盖了指针使用、动态分配等。值得花时间阅读更多内容。