我有這段代碼,但它不會編譯,我不明白什麼是錯的 - 我猜矢量的指針是不正確的。 我的想法是在main()中收集一些數字並將它們存儲在向量和數組中,然後將它們的內存地址傳遞給函數,並使用指針來打印存儲的數據。錯誤在函數中使用向量指針
我想出了這個,當我讀了一些關於指示我說應該使用它們以節省內存的東西,所以IMO下面的代碼將不會複製向量和數組的內容,但使用訪問指針他們在記憶中的位置 - 這就是我想要做的。
#include <iostream>
#include <vector>
using namespace std;
void function(vector<int>* a, int *s)
{
cout << "function starts.." << endl;
for(int i=0;i<a->size();i++)
{
cout << a[i] << endl;
cout << s[a[i]] << endl;
}
cout << "function ends..." << endl;
}
int main(void)
{
vector<int> m;
int s[102];
for(int i=0;i<10;i++)
{
m.push_back(i*i);
s[i*i] = i-2;
}
function(&m, &s);
return 0;
}
我在編譯時收到幾個錯誤,有些錯誤。
請告訴我我的代碼有什麼問題,以及如何解決它。謝謝...
猜猜你遇到的編譯錯誤是否是你的問題的一部分? ;-) – 2010-03-01 12:09:01
我已經教了C和C++編程多年,所以我很善於猜測,因爲通常的問題描述是「不起作用」。我從eBay購買的水晶球也有幫助。 – Tronic 2010-03-01 12:16:47