Returning Pointers to Strings
Learn about the dangers of returning pointers to strings.
We'll cover the following
Returning pointers to strings
Let’s declare two strings in a function:
char* func()
{
char str1[] = "Hello";
char str2[16] = "World";
return str1; //return str2;
}
Both str1
and str2
are local variables of func
. They get allocated when the function starts executing. Their stack frame is invalidated when the function finishes.
Therefore, their memory gets marked as free, and the compiler can reuse it for other functions or variables. Returning a pointer to such a variable is unsafe, as there is no guarantee that the memory will still be valid or contain the data from these two strings.
Consider the following code:
Get hands-on with 1400+ tech skills courses.