函式是不能返回陣列的,因此很直接的就想到的是返回指標,指標的宣告位置也要注意,防止在子函式中記憶體釋放掉了,因此用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...