int main()
{
cout<<"Enter n";
cin >> n;
int * a = new int[n];
a = foo(n);
free(a);
return -1;
}
int * foo(int n)
{
int * a = new int [n];
if(!a) // what should I return here if allocation of a fails
{}
free(a);
}
上記のコードでは、関数の戻り値を main から取得しようとしています。関数の戻り値の型は pointer です。ただし、メモリを動的に割り当てています。では、メモリの割り当てに失敗した場合は何を返せばよいでしょうか... NULL のような特別なシンボル。
PS - 非常に基本的な質問であり、Google で検索するための簡潔な形式に私の質問を形式化することはできませんでした。
編集:皆さんありがとうございます。問題を解決しました。