在C中,是否在堆栈中分配了一个结构数组?

ult*_*ohn 0 c stack struct

我想这可能是一个非常愚蠢的问题,但我只是想澄清一下.提前致谢!我不确定在函数内声明为局部变量的结构数组是否在堆栈中分配.没有?

Mic*_*zek 7

它确实; 你没有自己分配的任何东西(例如通过调用malloc)或声明静态(如费尔南多所说)在堆栈上分配.结构只是将多个变量组合在一起的一种方式; 它们仍然具有固定的大小(它们的元素的总大小,可能加上一些填充),并且访问struct的字段只意味着从struct中的某个位置提取适当的字节