我不明白爲什麼以下故障:爲什麼指針數組未能返回爲**
#include<string>
class Foo
{
public:
std::string** GetStr(){return str;}
private:
std::string * str[10];
};
感謝
我不明白爲什麼以下故障:爲什麼指針數組未能返回爲**
#include<string>
class Foo
{
public:
std::string** GetStr(){return str;}
private:
std::string * str[10];
};
感謝
首先,你這個標記爲C++和C是哪一個? C沒有字符串類。如果它是C++,請刪除C標籤,這是誤導性的(它們不是同一種語言!)。
編輯:我誤解了你正在嘗試做什麼。你的方法應該編譯。你只需要記住取消引用返回的str來獲取字符串。
我很少對付雙間接,但你必須做這樣的事情要設置的字符串:
*(*str) = "STR"; //or
*(str[i]) = "STR";
我不知道你將如何在這裏使用的地址符,因爲它返回一個引用而不是一個指針。
在str數組中設置字符串。你的方法真的很奇怪。問題是編譯器不知道你想取消引用一個字符串,所以它試圖取消引用char *。
我不明白你爲什麼要這樣做,但。這樣做會更好:
std::string str[10];
std::string* GetStr() { return str; }
它不能做什麼?它爲我編譯。 – 2009-08-05 19:37:42
是的...它也適用於我,我有一個不同的數據類型 – vehomzzz 2009-08-05 19:43:57
然後,如果它仍然無法正常工作更新您的問題,包括您的確切代碼與您的類型 – 2009-08-05 19:47:16