int main()
{
char* str;
str = "string one";
str = "string two";
str = func();
str = "string four";
return 0;
}
char* func()
{
char* tmp;
tmp = "string three";
return tmp;
}
我知道 str = "string one";
为此字符串分配内存并将该内存的地址分配给 str
. 正确地,在执行和 str = "string two";
执行时应该发生同样的事情,现在我想知道在这种情况下如何处理内存。当新分配发生时分配给这些字符串的内存是否会释放或者它是一种内存泄漏形式? str = func();
str = "string four";