c++ - 将 vector 指针传递给函数会导致段错误

标签 c++ pointers vector segmentation-fault

我将一个 vector 指针传递给另一个使用该指针推送数据的函数:

void foo(vector<pair<int,int>> * vp){
 vp->push_back(pair<int,int>(1,1)); //causes segfault
}

void bar(vector<pair<int,int>> *vp = NULL){
  foo(vp);
}

push_back 导致段错误。

最佳答案

如果您调用 bar 时不带参数,则 vp 将为 NULL。然后 foo 被传递一个 NULL 指针,因此,这条指令 vp->push_back 将产生段错误。

关于c++ - 将 vector 指针传递给函数会导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6335608/

相关文章:

c++ - 选择类对象字段的构造函数

跨子类的 C++ 互斥体和 STL 列表

pointers - 如何在go中定义一个指针,然后将这个指针传递给一个func来改变它的值?

c# - 将 vector/数组从非托管 C++ 传递到 C#

c++ - 无需复制和粘贴即可重用嵌套循环

c++ - Eclipse c++ 两次包含 header 错误

c - 将指针传递给 C 中的函数

c - 在函数中使用指针反转字符串,main 中的输出是乱码

haskell - Data.Vector.modify 在每次迭代时创建向量副本

vector - VHDL表达式不是常数