我已經寫一些代碼與VS2013 C++字符串指針,如下:視覺工作室C++空字符串指針
public struct MyStruct
{ // some declarations
string *MyStrAr[6];
};
// ... some more code
MyStruct *AStructNode = new MyStruct;
用戶給出的輸入的是初始化的Mystringarray的一些繩股和一個值分配給它們。此外在程序中,我想檢查是否已初始化Mystringarray[i]
。我曾嘗試以下:
if (AStructNode->MyStrAr[i]==NULL)
if (AStructNode->MyStrAr[i]->empty())
if(*(AStructNode->MyStrAr[i])="")
if (AStructNode->MyStrAr[i]->_Mysize==);
第一犯規捕獲任何(字符串是否填充與否),其餘亂扔試圖訪問受保護的內存異常。 我也試過try { } catch(...)
{},但也不成功。在發佈此消息之前,請閱讀儘可能多的帖子,我是業餘程序員,讚賞任何幫助/方向。 (我意識到,我可以通過例如聲明一串字符串而不是指針來回避這個問題,但我更願意理解爲什麼,如果我的監督是非常基本的,那就這樣吧!)。如果任何幫助,調試器通常拋出一行的xstring.cpp,那裏說的例外類似 return (this->_Mysize == 0);
乾杯,尼科
您不清楚您使用的是哪種語言。無論是C++還是代碼中存在拼寫錯誤,或者是C++/CLI –
嘗試讀取無效內存不會引發異常。所以你的try catch塊在這裏沒有幫助。你需要分配字符串指針。 – doctorlove
@VladfromMoscow我不確定我使用的是哪個版本,我猜它是C++/cli。我怎麼能確定? – nikopkat