The `+1` is for the `","` that will delimit the strings. `STRLEN` is needed to get the length of each string in the list so we can allocate a large enough string to hold the entire list. The `ga_len` on the next line is because I removed the `+1`s from the loop and needs to make room for all the `","`. It actually allocates too much though.. If there is only a single element, no `","` would be added, so the correct line would be `ga_len-1` - we only loose a byte though, but I'll fix it.