【发布时间】:2014-04-15 21:44:16
【问题描述】:
我有这个功能:
void getInput(vector<void*> &list)
{
int qty, large;
cout<<"How many random numbers do you wish to have? ";
cin>>qty;
cout<<"What is the largest number you wish to see? ";
cin>>large;
list.resize(qty+1);
for(int i = 0; i < qty; i++)
{
int x = (rand()%(large+1));
*((int*)list[i])=x;
}
}
而且它在线上崩溃了
*((int*)list[i])=x;
我被困在如何解决问题上。 我对此很陌生,我一直在搜索书籍和网站......我只要求在正确的轨道上领先。提前谢谢!
【问题讨论】:
-
为什么它首先包含
void *?它可能应该只是一个std::vector<int>。 -
您的向量中有指针,但它们指向任何内容。
-
@chris 这没有帮助。即使在
vector<int>,还是会崩溃。 -
@SamHuang,好吧,我的意思是根本不使用它,但似乎由于某种原因你不允许这样做。
-
@SamHuang:如果你有一个
vector<int>(你应该在这里)那么你根本没有指针,你只会push新元素_back。没有崩溃,正确的代码。
标签: c++ stdvector void-pointers