9
スマートポインタでスカラーとアレイの両方を使用するにはどうすればよいですか?スマートポインタでスカラーと配列の両方を使用する
新しいを使用しての古い方法とポインタを削除します。私は減らすことができますどのように
std::unique_ptr<int> p1(new int);
std::unique_ptr<int[]> p2(new int[10]);
:スマートポインタで
int *p;
if (useScalar) {
p = new int;
} else {
p = new int[10];
}
if (useScalar) {
delete p;
} else {
delete[] p;
}
、私は各スカラと配列ポインタのための2つのポインタを使用する必要がありますスマートポインタは1つだけ使用しますか?
'delete'や' delete [] 'を使うかどうかを判断するための' bool useScalar'を格納した独自のスマートポインタを書くことができます。 – jotik
'p = new int [1]'を割り当てて、それがスカラーへのポインタであるとふりかけることができますか? – dasblinkenlight
'int [1]'をスカラーとして使うこともできます。プログラムの他の部分も簡略化しているかもしれません。 – alain