Posted By: Smon
Nested structs - 11/30/19 15:06
Background: I'm working on an indicator in R that's so extremely slow I have to implement a cache. My indicator gives back a struct (inner). My cache uses a struct (outer) containing the price boundaries, for which the indicator would return the exact same value (fortunately this is the case!).
I want to use nested structs in order to not have to copy the inner struct one element at a time. I also don't want to have to adapt the outer struct if I make changes to the inner struct.
I think I must use memcpy. The manual tells us:
Link
This is some demo code:
I'm curious about the solution! I hope somebody can help.
I want to use nested structs in order to not have to copy the inner struct one element at a time. I also don't want to have to adapt the outer struct if I make changes to the inner struct.
I think I must use memcpy. The manual tells us:
Quote
memcpy(void* dest, void* src, long size)
Copies size bytes from src to dest. Can be used to copy a whole struct or array with a single function.
Copies size bytes from src to dest. Can be used to copy a whole struct or array with a single function.
Link
This is some demo code:
Code
function main() { typedef struct { int inside_element; } INNER; typedef struct { int outside_element; INNER nested; } OUTER; INNER inner; OUTER outer; inner.inside_element = 42; //prepare the element to get nested outer.outside_element = 13; //some element in the outer struct outer.nested = inner; //try to store the inner struct into the outer struct //Error in 'line 21: //Syntax error: Wrong type EQU:STRUCT@16::STRUCT@16 //memcpy(outer.nested, inner, sizeof(inner)); //tried something. Not working when declaring inner and outer as pointers either INNER test = outer.nested; //read back the nested struct printf("\nnested element: %d; other element: %d", test.inside_element, outer.outside_element); }
I'm curious about the solution! I hope somebody can help.