我似乎在我的代碼中得到這個錯誤,當我將鼠標懸停在說'數據'的位上時,它說'錯誤:'*'的操作數必須是一個指針」。任何人都可以看到問題出在哪裏。錯誤:'*'的操作數必須是一個指針
double* Matrix::get(int i, int j) const
{
return *data[i*N + j];
}
我似乎在我的代碼中得到這個錯誤,當我將鼠標懸停在說'數據'的位上時,它說'錯誤:'*'的操作數必須是一個指針」。任何人都可以看到問題出在哪裏。錯誤:'*'的操作數必須是一個指針
double* Matrix::get(int i, int j) const
{
return *data[i*N + j];
}
假設data
是一個數組的成員變量,你需要說的是:
return &data[i*N + j];
此外,由於你的函數是const
你應該返回一個const指針:
const double *Matrix::get(int i, int j) const
{
return &data[i*N + j];
}
如果您不想讓來電者修改陣列中的值,請將其更改爲:
double Matrix::get(int i, int j) const
{
return data[i*N + j];
}
'data + i * N + j'應該等於'&data [i * N + j]'(當然假設'data'是數組,原始指針或類似它們的東西)。 – GingerPlusPlus 2014-12-19 12:03:59
如果data
是雙數組,然後擺脫*
的,因爲你並不需要返回的內存地址:
double Matrix::get(int i, int j) const
{
return data[i*N + j];
}
這是什麼'data'?而你爲什麼試圖返回指向'double'的指針,而不是'double'? – 2014-12-19 11:54:19
數據是來自我的矩陣(數組)的信息 – MyNamesJeff 2014-12-19 11:55:02
您是否想要返回數組元素的地址?這是'&'而不是'*'。 – 2014-12-19 11:55:20