我有一些C代码,它有点像一个谜题。由于这个代码的原因,我想知道如何判断一个struct
对象是否最终位于堆栈或堆上?
这些对象不是使用malloc
或calloc
创建的。它们以数组的形式开始它们的生命周期。为了本文的目的,我将称这个结构体为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语言了解不够。
非常感谢您的帮助。