Re: [問題] 有沒有方法讓一個function變成pointer?
※ 引述《Propagator (傳來傳去)》之銘言:
恕刪。問題蠻有意思,我認為視情況,不一定有解答,
但普遍性的回答是:
double A[] ---> (一連串處理) ----> double B[]
如果不用 double B[], 可以接受 double A[] 會被修改,
那「可能」有解答;如果不能接受 double A[] 會被修改,
那有解法的機率不大。
----
翻譯原 po 原意做參考。
引述 期末調分數 的問題,調分數分二個步驟 (是亂寫的):
(1) 先算班上平均,得到 double ave;
(2) 每個人的成績扣掉 ave ,絕對值乘以 1.2 再加 ave,存到 double adj[]。
示意如下。
double average(double* score, size_t n);
void adjust_score(double* des_score, size_t n, double ave);
int main(){
const size_t n=20;
double score[n], adj_score[n];
double ave = average(score, n);
adjust_socre(adj_score, n, ave);
}
原 po 提到一點是他想解決的問題
因為那個N很大 再多宣告一個B 記憶體會不夠 但Func又不能硬拆
因為有太多地方需要用到Func了...如果把它拆出來
整個版面會超級大超級醜...非常難debug
想把 adj_score 整個拿掉,省下記憶體,以這例子而言的話只需這麼做
ave = average(score, n);
adjust_score(score, n, ave);
// don't write it one line : adjust_score(score, n, average(score, n));
和函式指標拉不上太大關係,關鍵是在於,
若能接受 運算前的array 在經運算後原始資料流失的話,
這麼做無妨;反之,必須拿一份新的記憶體存運算結果。
--
我知道 ~ 但別說出來 ,
說出來讓人感到特別難過...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.165.40
推
03/08 21:56, , 1F
03/08 21:56, 1F
→
03/08 21:56, , 2F
03/08 21:56, 2F
→
03/08 22:17, , 3F
03/08 22:17, 3F
→
03/08 23:01, , 4F
03/08 23:01, 4F
推
03/10 17:55, , 5F
03/10 17:55, 5F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章