性能问答>定义数组时,这两种方式在性能上有差别么?>
3回复

定义数组时,这两种方式在性能上有差别么?



(一)

int *func(){
int a[10];
//...
return a;
}

int main(){
int* a = func();
} 
//在函数里开数组后往main函数回传指针

(二)

void func(int a*){
//...
}
int main(){
int a[10];
func(a);
}
//在main函数开个数组后传实参到函数里

这两种定义数组的方式哪一种更好?在内存分配和性能上会有什么差别不?

106 阅读
请先登录,再评论

第二个更好,因为第一个很简单,你返回一个指向数组的指针,该数组在函数返回后将不再存在,也就是相当于一个悬空指针。

5月前

第一个并未定义,没意义,能编译并运行并不代表是正确的。😄

5月前
回复 最爱格子衫:

😅也有适用的地方吧

5月前回复