Re: [討論] 面試有鑑別度的問題??
※ 引述《amozartea (單車單)》之銘言:
: 到底面試要怎麼篩掉阿 我覺得好像只有拿有問題的code(但是可以run)給應徵者看
: 然後看他們能不能指出來並用好方法修正吧...
講到這裡想到被考過一段 code, 限 c < c++ 大概也不怎可能有這問題吧 >
int func()
{
double **a1;
int **a2;
float ** a3; /* 假設有很多個 */
a1 = (double**)malloc(sizeof(double*) * a1_row);
for(i=0; i<a1_row; ++i) a1[i] = (double*)malloc(sizeof(double)*a1_col);
...
return 1;
}
改正確。
回圈式配置可以先改一次性配置沒錯,(否則還要記 i 到哪裡失敗更麻煩)
關鍵在 heap 要配置不少,allocated fail 時,要把之前配成功的全都砍掉,
怎麼做?
目前衡量下,選 goto Orz...
--
~ 這輩子與神手無緣
我只好當神獸了 ~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.161
→
01/12 13:58, , 1F
01/12 13:58, 1F
→
01/12 14:02, , 2F
01/12 14:02, 2F
→
01/12 14:03, , 3F
01/12 14:03, 3F
補清楚好了,假設配置到 a6[3] 才失敗, 這個 func 不執行, 但
除了 a6[0],a6[1] 要清空之外 , 還要把 a1~a5 清掉再回去,
所以,「考慮 alloc fail, 改成正確,但最難維護的寫法」,寫起來大概像這樣
int ** a1 = (int**)malloc(sizeof(int*) * h);
if(!a1) return;
for(i=0; i<h; ++i) {
a1[i] = (int*)malloc(sizeof(int)*w);
if(!a1[i]) { 清掉 a1[0:i-1], 清掉 a1; return ; }
}
double ** a2 = (double**)malloc(sizeof(double*) * h);
if(!a2) {清掉 a1[0:h], 清掉 a1 , return; }
for(i=0; i<h; ++i) {
a2[i] = (double*)malloc(sizeof(double)*w);
if(!a2[i]) {清掉 a2[0:i-1], 清掉 a2; 清掉 a1[0:h], 清掉 a1; return; }
}
依此類推,所以這種寫法 code 會拖很長, 問有沒有比較好的方式解決這問題。
< 希望這次敘述有比較清楚 ... >
※ 編輯: EdisonX 來自: 180.177.76.161 (01/12 14:19)
推
01/12 14:38, , 4F
01/12 14:38, 4F
→
01/12 15:04, , 5F
01/12 15:04, 5F
→
01/12 15:06, , 6F
01/12 15:06, 6F
→
01/12 15:09, , 7F
01/12 15:09, 7F
→
01/12 15:19, , 8F
01/12 15:19, 8F
→
01/12 15:20, , 9F
01/12 15:20, 9F
→
01/12 15:21, , 10F
01/12 15:21, 10F
→
01/12 15:21, , 11F
01/12 15:21, 11F
→
01/12 15:22, , 12F
01/12 15:22, 12F
→
01/12 15:23, , 13F
01/12 15:23, 13F
→
01/12 15:23, , 14F
01/12 15:23, 14F
→
01/12 15:24, , 15F
01/12 15:24, 15F
→
01/12 15:25, , 16F
01/12 15:25, 16F
→
01/12 15:26, , 17F
01/12 15:26, 17F
→
01/12 15:26, , 18F
01/12 15:26, 18F
推
01/12 15:33, , 19F
01/12 15:33, 19F
→
01/12 15:34, , 20F
01/12 15:34, 20F
→
01/12 15:34, , 21F
01/12 15:34, 21F
→
01/12 15:35, , 22F
01/12 15:35, 22F
→
01/12 15:36, , 23F
01/12 15:36, 23F
→
01/12 16:02, , 24F
01/12 16:02, 24F
推
01/12 16:37, , 25F
01/12 16:37, 25F
→
01/12 16:37, , 26F
01/12 16:37, 26F
→
01/12 16:38, , 27F
01/12 16:38, 27F
推
01/12 16:47, , 28F
01/12 16:47, 28F
→
01/12 16:48, , 29F
01/12 16:48, 29F
→
01/12 20:03, , 30F
01/12 20:03, 30F
→
01/12 20:06, , 31F
01/12 20:06, 31F
→
01/12 23:28, , 32F
01/12 23:28, 32F
→
01/12 23:30, , 33F
01/12 23:30, 33F
→
01/12 23:31, , 34F
01/12 23:31, 34F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 13 之 14 篇):