在下面的代碼:分配值一個空的char *
const char * my_func1(char const *str)
{
const char *a = func(); // returns a char *, but I guess its ok to assign non-const to const
if(a == NULL)
{
MY_String b = str; //MY_String is an inhouse class with string functions
b.replace("\"", "\'"); //replace " with '
a = (const char *)b; //MY_string has an operator (const char *)
}
return a;
}
我遇到的問題是,當a
是null
,並進入if
塊,分配給a
工作不正常,我得到垃圾。是因爲a
是null
我無法給它賦值?我該如何解決?
您如何確定「對a的分配不正常」?另外,什麼是'MY_String'? –
你的代碼是非常不透明的。我們不知道'func'是什麼或'MY_String'是什麼,'replace'方法實際上做了什麼,轉換操作符做了什麼,等等。如果'My_String'管理它自己的內存,你會返回一個指向一個'刪除[]'內存塊。 –
@Oli Charlesworth這是因爲,我可以在調試器中運行它,並停止在'返回',並看到一個垃圾..但讀完評論後,我覺得這個任務正在工作,但超出了範圍之後如果阻止 – tryurbest