函式返回陣列

2021-07-22 14:38:58 字數 1314 閱讀 4734

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

錯誤的**如下:

#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;}

正確的方式如下:

#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 指標的概念之後,再來學習本章的內容。如果您想要從函式返回乙個一維陣列,您必須宣告乙個返回指標的函式,如下 int my...

C 函式返回陣列

int getnewarray 或者採用static定義指標變數 在陣列p count 前面加入了static關鍵字,它就使得p count 存放在記憶體中的靜態儲存區中,所占用的儲存單元不釋放直到整個程式執行結束 for int i 0 i count i printf n for int i 0...

Oracle函式返回陣列

create or replace type defect number3 as object id varchar2 100 urgent number 10,2 major number 10,2 norm number 10,2 total number 10,2 create or repl...