The issue here is that when you create the local variable it is allocated on the stack and is therefore unavailable once the function finishes execution (implementation varies here). The preferable way would be to use malloc()
to reserve non-local memory. the danger here is that you have to deallocate (free()
) everything you allocated using malloc()
, and if you forget, you create a memory leak.