3 ms·
Just in case people don't know about C. This is a short piece of code where an array is returned from a function. typedef struct {int v[4];} Vec; Vec
by jxy 4y ago
Just in case people don't know about C. This is a short piece of code where an array is returned from a function.
typedef struct {int v[4];} Vec;
Vec get_vec(void){return Vec {3,2,1,0};}
Edit: alas, I've been writing too much C++. The following is correct C.
typedef struct {int v[4];} Vec;
Vec get_vec(void){Vec v={{3,2,1,0}}; return v;}
- merlincorey 4y agoYeah, there is nothing complicated about returning a static array in C. C is a much simpler language than many people assume -- of course, it can get really hairy and complicated especially when you need to do dynamic memory management, but that's not what the GP was asking for in this case.
- chronial 4y ago> that's not what the GP was asking for in this case. You really think that when they mentioned the dynamically allocated `Vec` in Rust (which has fixed-sized arrays) and "manual memory management" in C, what they were actually talking about was a static array?
- jnxx 4y agoBut you need dynamic memory management for side-effect-free functional programming.
- xigoi 4y agoNow do an array whose size is not known at compile time.
- flohofwoe 4y agoIn C99 or later you can also write it as: Vec get_vec(void) { return (Vec){ { 3, 2, 1, 0 } }; } ...or I would probably prefer designated init to make the initialization a bit clearer: Vec get_vec(void) { return (Vec){ .v = { 3, 2, 1, 0 } }; }
- deleted 4y ago[deleted]