感谢您的阅读,我的问题是,如果这是正确编码:字符返回函数指针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) –
在交换机返回后,你并不需要休息。很多编译器会对此提出警告。 –