> В коде выше память выделяется динамически? В куче или в стеке?
Динамически, в куче. Выделяется в момент получения запроса, сам вызов FCGX_GetParam уже возвращает указатель на выделенную память.
> Я думал, чтобы память выделить нужно размер данных знать. Выходит не нужно?
Нужно и разумеется библиотека знает, сколько памяти нужно выделить.
Вам же не надо думать о том, где выделяется память и каким образом. Вы получаете указатель и используете. Модифицировать данные по полученному указателю нельзя, о чем написано в документации.