作者shaopj (天空藍^_^)
看板C_and_CPP
標題[問題][急] 指標問題,麻煩幫忙
時間Fri May 8 14:29:11 2009
sgesvx_(char *fact, char *trans, integer *n,......real *rcond,)
小弟我要呼叫一個Subroutine來用,名稱是:sgesvx_(),
但是sgesvx_("real *rcond,"這一項一直搞不定),
source file的說明如下:
http://src.wtgstudio.com/?hM3FN4
譬如說, integer *n ,這是要輸入的,假設我想輸入3,我的作法是:
integer *n, n_val=3;
n = &n_val;
這樣應該沒問題
我的問題是, real *rcond ,這是程式計算後會output的結果,
請問我應該如何宣告呢?
麻煩幫個忙,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.82.71
1F:→ james732:real rcond; sgesvx_(&rcond); 是這個意思嗎?? 05/08 14:42
2F:→ shaopj:我是這樣輸入 sgesvx_(n,rcond), n應該沒問題 05/08 14:46
3F:→ shaopj:rcond不知道要如何正確宣告 05/08 14:47
4F:推 ledia:不用多一個 n, integer n_val=3, 傳 sgesvx_(&n_val); 05/08 15:12
5F:→ ledia:同樣的 real 就跟一樓的一樣 05/08 15:12
6F:→ shaopj:謝謝..我重弄試試看... 05/08 15:15
7F:→ shaopj:再請問一下,real *a ,a 是一個陣列 ,那該如何input 05/08 15:30
8F:→ shaopj:目前的作法是:real a[3]; a[1]=x,a[2]=x,a[3]=x;sgesvx_(a) 05/08 15:31
9F:→ james732:再把你的問題講清楚一點好嗎?? 05/08 15:37
10F:→ shaopj:嗯嗯 不好意思 05/08 15:40
11F:→ shaopj:a 是一個要input的real array,假設我想輸入a=[7 8 9]這個陣 05/08 15:44
12F:→ shaopj:列,我目前的作法是:先宣告real a[3];然後在指派陣列 05/08 15:45
13F:→ shaopj:a[1]=7,a[2]=8,a[3]=9;最後sgesvx_(a) 05/08 15:46
14F:→ shaopj:real a[3]={7,8,9}; sgesvx_(a) 這樣可以嗎 05/08 15:48
15F:→ shaopj:sgesvx_(裡面是不是都放位址,也就是加個&,但陣列怎麼辦) 05/08 15:49
16F:推 ledia:陣列就直接放, a[3]; => a 本身就當作位址 05/08 15:52
17F:→ shaopj:所以說sgesvx_(&n,a,&rcond);陣列a就直接放進去,其他加& 05/08 15:56
18F:→ shaopj:那如果我想印出output;例如印rcond; 05/08 15:57
19F:→ shaopj:print("%f",rcond)應該 是這樣吧 05/08 15:58
20F:推 ledia:printf ? 怎麼不自己試一試, 等回答應該會比較慢吧? ^^| 05/08 16:15
21F:→ shaopj:我有印啊,只是印出來的答案不如預期,我想確定一下這樣印, 05/08 16:18
22F:→ shaopj:有沒有錯 05/08 16:19
23F:→ shaopj:雖然還是有不少問題,但很謝謝大家的指教,繼續努力 05/08 16:21
24F:→ shaopj:我真白痴,忘記印的時候是ferr[0] 搞老半天 多謝ledia大 05/08 18:20
25F:→ shaopj:thanks all!! 05/08 18:25