在我的头文件中,我将此 vector 定义为指针。
private:
vector<filteredPoint_t> *filteredValues;
在我的cpp文件中,我想向此 vector 添加(struct)
filterPoint_t
的实例。它编译。filteredPoint_t fp;
fp.filteredValue = 3.4;
fp.globalIndex = 3;
filteredValues->push_back(fp);
但是,当我运行它时,它会在调用
filteredValues->push_back(fp)
后立即停止。甚至没有显示prinf
控制台输出。虽然在控制台上没有错误消息。我在这里想念什么?
一些背景信息:我需要将
filteredValues
传递给多个线程。这样每个线程都可以写回该变量。因此,我认为我将使用指针变量来执行此操作。 最佳答案
您需要首先分配内存(可能是构造函数),或将其指向有效的vector<filteredPoint_t>
地址:
filteredValues = new vector<filteredPoint_t>() ;
然后,您可以在其上使用
push_back
。另外,请确保在析构函数中取消分配使用
new
分配的内存delete [] filteredValues ;