char * names( char * fname = new char[ 15 ], char * lname new char[ 25 ] )
{
lname[ strlen( lname ) ] = ','; //adds a comma
lname[ strlen( lname ) ] = ' '; //adds a space(lastname, firstname)
strcat( lname, fname ); //concatenate fname to lname
delete[ ] fname; //delete array
return lname; //return lname
delete[ ] lname; //delete array
}
I don't have much experience with dynamic arrays in C++, but I'm using one in a function I made. My understanding was that you could release the memory after your done using the array. But the program crashes if I delete it before using the return statement: Here is the function:
This makes it crash if I run it, but if I move the delete[ ] fname statement after the return statmenet, it works just fine. Why does it crash when I delete[ ] fname before the return statement? I concatenated fname to lname and returned lname. It shouldn't matter if I delete fname array before returning should it? Or can you not release memory like this?