I would say what's most relevant in your decision is how Perl-dependent you want your C code to be:
If you're comfortable with it being Perl-dependent, you would probably want to have all memory allocation/management done by Perl, using probably-mortal SVs, and PVs from the start.
If you want to maintain the C code as purely C, then you can use the typemap stuff in the various notes here to copy the C-created data into Perl-land, and then free the C-allocated memory.
Comment on Re^3: Perl, C and deallocation responsibility
Unfortunately I need to make this work in both worlds. I still need to keep the compiled C running, and I need to have it called by Perl. I never choose the easy path!