錯誤的方式:
int[] test() {
int b[3] ={1, 2, 3};
return b;
}
我們可以嘗試使用pointer回傳:
int* t()
{
int *b=new int[3]={1,2,3};
return b;
}
main()
{
int *a;
a=t();
}
note: 但如此一來,有可能會造成memory lost,由函式回傳陣例, 是個糟透了的習慣,memory 的 配置 和 釋放, 應該由使用的人去做, 由函式回傳陣例, 就會破壞了 配置 和 釋放 一對的規則, 所引申的問題有: 難於應用和延伸, memory lost ... ...
較佳的方式:
void t( int* b, int n_b )
{
for( int i=0; i<n_b; i++ )
b[i] = i;
}
int main()
{
int a[10];
t(a,10);
system("pause");
return 0;
}
沒有留言:
張貼留言