感謝您的閱讀,我的問題是,如果這是正確編碼:字符返回函數指針C++
test1.cpp:
void Load(OBJECTSTRUCT* gObj)
{
char * VipType = VipTypeCheck(gObj->m_Index);
MsgOutput(gObj->m_Index,"[%s] Welcome",VipType);
}
測試2.cpp:
char* VipTypeCheck(int aIndex)
{
switch (VipSystem[aIndex].VIP_Type)
{
case 0:
return "Regular";
break;
case 1:
return "Bronze";
break;
case 2:
return "Gold";
break;
case 3:
return "Diamond";
break;
default:
return "[Error]";
break;
}
return "[Error]";
}
它的工作原理,但我的問題是,這可能導致分段錯誤/堆棧溢出或任何其他類型的錯誤?我知道我沒有分配動態內存,但我懷疑變量char * VipType是否可以。謝謝,對於noob問題感到抱歉。
的可能重複(http://stackoverflow.com/questions/ 1588976/do-pointers-to-string-literals-remain-valid-after-a-function-returns) –
在交換機返回後,你並不需要休息。很多編譯器會對此提出警告。 –