shared_ptrsの使い方を理解しようとしています。以下の簡単なコードstd :: shared_ptr << std :: vector <double>>を関数に渡す
#include<iostream>
#include<vector>
#include<memory>
void funct(std::shared_ptr<std::vector<double>> H){
H->push_back(1.00);
}
int main()
{
std::shared_ptr<std::vector<double>> H;
funct(H);
return 0;
}
私にはわかりにくいセグメンテーションフォルトがあります。私はここで間違って何をしていますか?
'std :: shared_ptr'を初期化する必要があります。デフォルトでは、 'nullptr'です。したがって、 'H = std :: make_shared>()'を実行する必要があります。 'auto H = std :: make_shared >()' –
Justin
[OT]所有権を譲渡しないので、 'void funct(std :: vector&H) '、' funct(* H); 'のようになります。 –
Jarod42