【发布时间】:2010-03-01 12:03:30
【问题描述】:
我有这段代码,但它无法编译,我不明白哪里出了问题——我猜向量的指针不正确。 我的想法是在 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;
}
我在编译时收到几个错误,有问题。
请告诉我我的代码有什么问题以及如何修复它。谢谢...
【问题讨论】:
-
猜测您得到的编译错误是否是您问题的一部分? ;-)
-
我已经教 C 和 C++ 编程多年,所以我很擅长猜测,因为通常的问题描述是“不起作用”。我从 eBay 买的水晶球也有帮助。
标签: c++ arrays pointers vector