[問題] 函式回傳陣列指標(雙重指標)一問
各位前輩們好,
最近我在研究dll函式回傳陣列指標的寫法,可是遇到不知道怎麼解決的狀況
我要寫一個創造 N x N 單位矩陣的函式,其回傳值為該二維陣列的雙重指標
在函式內部把指標都抓到了之後,回傳給主程式接之後讀取會出現錯誤,
好像是函式內所創建的陣列本體在函式結束之後隨之消滅的緣故,
請問要如何做才能正確回傳雙重指標?
以下為我的程式碼,用的是Delphi/FreePascal的語法,希望有前輩可以指點錯誤。
謝謝!
function Identity(N:Integer):Pointer;StdCall;
var
I,J:Integer;
TMPAry:Array of Array of Double;
Ptr1:Array of ^Double;
Output:Pointer;
begin
setlength(TMPAry,N,N);
setlength(Ptr1,N);
for I := 0 to N-1 do
begin
Ptr1[I]:=@TMPAry[I,0];
for J := 0 to N-1 do
begin
if I=J then TMPAry[I,J]:=1
else TMPAry[I,J]:=0;
end;
end;
Output:=@Ptr1[0];
Result:=Output;
end;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.47.93
推
04/19 20:50, , 1F
04/19 20:50, 1F
→
04/20 23:07, , 2F
04/20 23:07, 2F
→
04/20 23:08, , 3F
04/20 23:08, 3F
Programming 近期熱門文章
PTT數位生活區 即時熱門文章