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";
執行,現在我想知道如何處理在這種情況下的內存。分配給這些字符串的內存在新分配發生時釋放,還是內存泄漏的一種形式?此代碼是否導致內存泄漏
只是爲了謹慎,做自己的青睞,並採取指定字符串文字的習慣,只有在該聲明'字符常量變量*'內存。字符串文字是不可修改的,所以像你一樣聲明它們可能只會給你帶來麻煩。 –
區別:for str =「text」;內存由LINKER分配,str = malloc();你分配內存,並應該釋放();記憶。 –