次のコードは問題なく動作しますが、returned_array
ポインターを削除する必要があるint main()
かどうか、または自動的に削除されるかどうかはわかりません。自動的に削除されないと推測し、終了delete returned_array;
後に使用する必要があると想定cout
します。助言がありますか?
#include <iostream>
double* pass_return_array(double passed[])
{
double* returned_array = new double[3];
for(int index = 0; index < 3; index++)
returned_array[index] = passed[index];
return returned_array;
}
int main()
{
double passed[3];
double* returned_array;
for(int index = 0; index < 3; index++)
passed[index] = index + 100;
returned_array = pass_return_array(passed);
for(int index = 0; index < 3; index++)
std::cout<<returned_array[index]<<std::endl;
return 0;
}