Stage 4.5: Creating Data In Memory
When we instantiate a struct in our code our program creates the associated field data side by side in memory.
We instantiate by specifying all field values within StructName{...}
Struct fields are accessed using a dot .
operator.
Memory details of our example:
- The text inside the quotes is read only data (e.g. "Ferris"), therefore it is placed in the data memory region.
- The function call
String::from
creates a struct String that is placed side by side with the fields of SeaCreature in the stack. A String represents text that can be changed and does this by:- Creating memory on the heap for the text where it can be modified
- Storing a reference to that memory location on the heap and storing it in String struct (More on this in future lessons)
- Finally our two friends Ferris and Sarah have data structures that will always have fixed locations in our program, so they are placed on the stack.