我有一個需要返回一個指針數組的函數:返回一個指向數組的指針C++
int * count()
{
static int myInt[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
return &myInt[10];
}
我的主函數中我想顯示這個數組的整數之一,喜歡這裏的指數3
int main(int argc, const char * argv[])
{
int myInt2[10] = *count();
std::cout << myInt2[3] << "\n\n";
return 0;
}
然而,這給我的錯誤:「數組初始化函數必須是一個初始化列表」
我該如何創建一個使用指針來獲得相同的Elemen我的主函數中的數組ts作爲指針數組?
使用向量或std :: array代替 – taocp
數組和指針是等價的但不相同。請參閱C常見問題解答:http://c-faq.com/aryptr/aryptrequiv.html – kfsone
老兄,我並不是說這是光顧的,但是這個代碼有很多原因是有缺陷的。真正最好的做法是讀一本書。我推薦C編程語言(Kernighan&Ritchie);它對我所遇到的指針有最好的解釋,並且在這方面同樣適用於C++。你會在本章末尾知道指針爲什麼int myInt [10] = * count()不可能做你想做的事情。 – Bathsheba