use*_*545 5 c++ pointers vector void
我有一个回调函数,它接受 avoid *作为参数来传递参数,并且我想将向量传递给该函数。该函数将被多次调用,因此在回调过程完成后,我希望能够迭代所有已push_back()通过回调进行编辑的元素。
static void cb(void *data)
{
vector<int> *p = static_cast<vector<int>*>(data); //Attempting to convert *void to vector<int>
p->push_back(1);
}
int main()
{
vector<int> a(10); //Max of 10 push_back()s? vector<int> a; gives memory error.
cb((void*)&a.at(0));
cout << a.at(0); //Gives a random number of 6 digits or higher
}
Run Code Online (Sandbox Code Playgroud)
a.at(0)问题是,在回调后调用时,它的值并不正确为“1” ,而只是一些随机数。
| 归档时间: |
|
| 查看次数: |
9117 次 |
| 最近记录: |