delphi如何接收函式返回的,長度未知的陣列?麻煩給例子,小弟新手

2022-12-16 18:26:12 字數 982 閱讀 7769

1樓:己聞楣

使用動態陣列即可,即宣告為「array of 基礎型別」的。

首先,根據你的陣列元素型別,宣告一個新的型別。假設陣列為整數陣列,示例如下:

type

tarray_integer = array of integer;

function makerandomintegers( var andata : tarray_integer ) : integer;

vari : integer;

begin

result := 1 + random( 20 );

setlength( andata, result );

for i := 0 to result - 1 do

andata[i] := random( 1000 );

end;

如呼叫這個函式,將會構建一個動態陣列,長度隨機,裡面也存放著隨機數,完整的呼叫和訪問邏輯示例如下:

varmydata : tarray_integer;

i, l : integer;

.......

begin

l := makerandomintegers( mydata ); // 函式返回了隨機長度,如某些函式不返回長度,也可以用length( mydata )來獲取實際長度

// 注意:動態陣列的下標固定地從0開始

for i := 0 to l - 1 do

showmessage( format( '整數#%d: %d', [ i +1, mydata[i] ] ) );

end;

2樓:

可以傳遞引用,var為引用, 返回陣列長度function foo(var a:array of integer;):integer;

begin

result:=5;

end;

也可以用tlist代替資料,本身支援記錄長度

c如何函式返回值,c如何函式返回值

返回值是右值 只能在等號右邊 可以用一個變數來接受收 函式也可以通過引用和指標來改變外部變數的值 c 中的返回值指的是什麼?首先,c語言中的函式有兩種形式 1 有返回值,2 無返回值。有返回值的函式會把內執行的結果 容也就是你寫這個函式的目的 返回到主函式中。沒有返回值的函式主要是為了完成某種任務 ...

關於C 函式返回值的問題,C 函式返回值問題

include class test public test int x 0 i x cout 新建的該物件的地址為 test cout 析構地址為 正確輸出,不過你的 確實認人匪姨所思 與實參的問題 以一個簡單的程式為例來說明 void mswapa int a,int b 這 兩個函式都是交換a...

dll裡面的c函式如何向python返回陣列

是想採用python呼叫c寫成的dll呢?還是想將c寫的dll封裝成python模組呢?如果是前者可以使用ctypes,如果是後者可以使用swig或者boost進行封裝 python 呼叫c 程式,c 程式如何返回陣列給python c c 不能直bai接返回一個數du組。這是由於在c c 中,陣列...