3回复
5月前
定义数组时,这两种方式在性能上有差别么?
(一)
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 阅读
第二个更好,因为第一个很简单,你返回一个指向数组的指针,该数组在函数返回后将不再存在,也就是相当于一个悬空指针。