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";
ですが、この状況でメモリがどのように処理されるのか疑問に思っています。これらの文字列に割り当てられたメモリは、新しい割り当てが発生したときに解放されますか、それとも一種のメモリ リークですか?