typedef struct { long x; long y; long *array; long length; } foo; long sum1(foo arg) { long ans = arg.x; for(long i = 0; i < arg.length; i += 1) ans += arg.y * arg.array[i]; return ans; } long sum2(foo *arg) { long ans = arg->x; // means same as long ans = (*arg).x; for(long i = 0; i < arg->length; i += 1) ans += arg->y * arg->array[i]; return ans; }