假设以下函数:
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;
}
在最后一种情况下,我们需要预先分配内存。所以我分享它,我想知道哪个是返回数组的最佳方法。它们中的哪一个为图书馆或班级的用户提供了更多的安全性?最推荐哪种方法?为什么?