次の関数があるとします。
float *dosomething(const float *src, const int N)
{
float *dst = (float *)malloc(sizeof(float) * N);
if(!dst)
{
printf("Cannot allocate memory\n");
exit(EXIT_FAILURE);
}
for(int i = 0; i < N; i++)
dst[i] = src[i] * 2;
return dst;
}
この場合、正しく使用したいのであれば、事前にメモリを割り当てる必要はありませんか?
さて、別のケース:
void dosomething(float *dst, const float *src, const int N)
{
for(int i = 0; i < N; i++)
dst[i] = src[i] * 2;
}
最後のケースでは、事前にメモリを割り当てる必要があります。だから私はそれを共有し、配列を返すための最良の方法はどれだろうと思っています. ライブラリまたはクラスのユーザーにより多くのセキュリティを提供するのはどれですか? どの方法が最も推奨されますか? なぜ?