Please consider this C code:
I've an array of a struct on the stack. This struct has 3 fixed-length array of characters. Since it's on stack, memory is all pre-allocated and I don't have to worry about c/malloc or freeing.
#include <stdio.h>
#include <stdio.h>
#include <string.h>
struct memberStruct {
    int Field1;
    char Name[128];
    char Token[128];
    char Secret[128];
    int Epoch;
    int Age;
    int Zip;
    int Devices;
    int Leaves;
};
struct memberStruct members[8192] = { 0 };
void printMember(struct memberStruct *member);
int main() {
    printf("size of members: %d\n", sizeof(members));
    printMember(&members[0]);
    struct memberStruct *ptr = &members[1];
    printf("member0 is at %p\n", ptr);
    memcpy(ptr->Name, "Member 1 Name", 32);
    printMember(ptr);
    printMember(&members[1]);
    return 0;
}
void printMember(struct memberStruct *member) {
    printf("This is member at %p\n", member);
    printf("member Name: %s, Age: %d, Zip: %d, Secret: %s\n", member->Name, member->Age, member->Zip, member->Secret);
}
I find this convenient. But when you run it,
$ ./question 
size of members: 3342336 // <-- THIS!
This is member at 0x21030
member Name: , Age: 0, Zip: 0, Secret: 
member0 is at 0x211c8
This is member at 0x211c8
member Name: Member 1 Name, Age: 0, Zip: 0, Secret: 
This is member at 0x211c8
member Name: Member 1 Name, Age: 0, Zip: 0, Secret: 
You can see it takes ~3.3MB of memory, a lot on the stack, which brings me to the question:
Is there a way I can create this array of struct on the heap (with mem set aside for the members with fixed-length array of chars)?
 
     
    