※ [本文轉錄自 C_and_CPP 看板]
作者: Aligu1009 (=.=) 看板: C_and_CPP
標題: [問題] 函數回傳char*的問題
時間: Tue Oct 17 19:56:22 2006
在下面的程式片段中
char* getStr() {
// char str[] = "string"; // (1)
char* str = "string"; // (2)
return str;
}
void main() {
char* pStr = NULL;
pStr = getStr();
cout << pStr << endl;
}
若照目前這樣編譯執行結果會印出string
但若把(2)那行拿掉只留(1)那行則編譯(g++)會有warning:
address of local variable 'str' returned
我一直把(1)和(2)的寫法看成一樣的
看來是我觀念錯了
請問這兩種寫法差在哪裡呢? 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.114.70
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.114.70