函式返回陣列的方法

2021-07-29 17:48:18 字數 1109 閱讀 6536

#include using namespace std;

float* multmatrix(float a[4], float b[4])

int main()

; float b[4] = ;

float *m = multmatrix(a, b);

cout << m[0] << " " << m[1] << endl;

cout << m[2] << " " << m[3] << endl;

return 0;

}

你也許會這樣寫,但這樣寫是不對的,問題在於函式執行完畢後m陣列所占有的記憶體會被系統釋放,原先的內容會有所改變。

#include using namespace std;

float* multmatrix(float a[4], float b[4])

int main()

; float b[4] = ;

float *m = multmatrix(a, b);

cout << m[0] << " " << m[1] << endl;

cout << m[2] << " " << m[3] << endl;

delete m;

return 0;

}

這樣做以後就不會出現問題了,但這樣寫你不覺得很麻煩嗎?當然麻煩了,所以我們有必要來簡化一下。

#include using namespace std;

void multmatrix(float m[4], float a[4], float b[4])

int main()

; float b[4] = ;

float *m = new float[4];

multmatrix(m, a, b);

cout << m[0] << " " << m[1] << endl;

cout << m[2] << " " << m[3] << endl;

delete m;

return 0;

}

這樣寫就只申請了一次記憶體,簡潔多了。

C C 函式返回陣列的方法

c c 中想要乙個函式返回陣列,此類問題,應用場景往往為了解決函式間相互通訊,比如某個函式內處理的完的結果資料需要交接給另乙個函式的情況,方法大概有三種 例如在函式func中對a陣列進行賦值,之後可以再對該陣列進行其他操作 1.利用全域性變數直接對資料進行操作。int a 2 void func v...

函式返回陣列

函式是不能返回陣列的,因此很直接的就想到的是返回指標,指標的宣告位置也要注意,防止在子函式中記憶體釋放掉了,因此用new進行動態分配記憶體,最後注意記憶體的釋放 陣列的釋放與動態分配的變數的釋放方式還有所不同 錯誤的 如下 include using namespace std float mult...

c 函式返回陣列

c 語言 不允許返回乙個完整的陣列作為函式的引數 但是,您 可以通過指定不帶索引的陣列名來返回乙個指向陣列的指標 我們將在下一章中講解有關指標的知識,您可以先跳過本章,等了解了 c 指標的概念之後,再來學習本章的內容。如果您想要從函式返回乙個一維陣列,您必須宣告乙個返回指標的函式,如下 int my...