I have some C code that is something of a puzzle. For a reason to do with this code, I'm wondering how I can tell if a struct
object is ending up on the heap or stack?
The objects are not being created with malloc
or calloc
. They start their life in the form of an array. For the purposes of this post, I'm going to call the struct Emp.
Emp myEmp[6];
/* Each myEmp[?] item is populated in code */
The objects are sorted and manipulated in various ways and at some point, the objects are copied and then handed to a array-pointer. The copy is done via memcpy
. The objects are then put in to something like: Emp* emps_a[6]
.
The objects go from a copy and are assigned in to the above emps_a.
int i;
for( i = 0; i < n; i++ )
{
emps_a[i] = myEmpsCopy + i;
}
I'm not sure if some or any of this has bearing on my question. I never need free() or do memory clean up... I'm afraid I don't know too much about C.
The help is greatly appreciated.