我有一些令人困惑的 C 代码。出于与此代码有关的原因,我想知道如何判断一个struct
对象是在堆上还是在堆栈上?
对象不是用malloc
或创建的calloc
。他们以数组的形式开始他们的生活。出于本文的目的,我将调用 struct Emp。
Emp myEmp[6];
/* Each myEmp[?] item is populated in code */
以各种方式对对象进行排序和操作,在某些时候,对象被复制然后交给数组指针。复制是通过memcpy
. 然后将对象放入以下内容中:Emp* emps_a[6]
.
对象来自副本并分配到上述emps_a。
int i;
for( i = 0; i < n; i++ )
{
emps_a[i] = myEmpsCopy + i;
}
我不确定这是否与我的问题有关。我从不需要 free() 或清理内存……恐怕我对 C 不太了解。
非常感谢您的帮助。