[爆卦]一維陣列是什麼?優點缺點精華區懶人包

為什麼這篇一維陣列鄉民發文收入到精華區:因為在一維陣列這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者honamida (honamida)看板C_and_CPP標題[問題] 一維陣列模擬二維時間T...

一維陣列 在 PORSCHENRI 保時捷 • 台中 • 跑車 Instagram 的最佳解答

2021-07-11 08:45:01

#每日一車 #保時捷 🚗:Porsche 911 GT2 RS (991) 🇩🇪 ⚙️:3800c.c 水平對臥6缸 Bi-Turbo 🐎:700hp@7000rpm 👟:0-100km/hr 2.8s;0-200km/hr 8.3s 💰:$14,880,000 NTD 起 (2018 A.D) —...


我寫了一個function:


void add(int N, float R[100][100], float M1[100][100], float M2[100][100])
{ int i,j;
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
R[i][j]=M1[i][j]+M2[i][j];
}
}


是用來做矩陣加法的
然後我想要把他用成指標 我試著用這樣

void add1(int N,float *R,float *M1, float *M2)
{ int i,j;
float *p;
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
*p=*(M1+i*N+j)+*(M2+i*N+j);
}
}


在main裡呼叫時也從

add(q,R,M1,M2);

改成

add1(q,&(R[100][100]),&(M1[100][100]),&(M2[100][100]));


可是在用switch選擇方陣大小及運算方法及輸入方法時都ok

一run到 add1 就會當掉

add是沒問題

請問一下我的add1該怎麼修改呢

因為我也是用b板上的概念第一次自己試著寫寫看

諸多不懂麻煩指教@@ 謝!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.102.131
james732:float *p; *p = .... 這個 p 沒有指向有效空間 11/25 22:16
james732:置底文的十三誡第三 11/25 22:17
honamida:好像是耶= = 那如果我要指向R呢?? 11/25 22:17
james732:那應該是 *(R + i * N + j) = .... 之類的 11/25 22:18
james732:p是多餘的 11/25 22:18
honamida:恩恩 這樣就不會當掉了 不過加出來結果都是0= = 11/25 22:20
james732:用 debugger 找找看問題吧 11/25 22:21
honamida:謝謝你囉! 11/25 22:22
akasan:&(R[100][100]) ? 11/25 22:27
honamida:恩 對 這樣有哪裡不對嗎@@" 11/25 22:50
akasan:你要取第一百行一百列的那個元素的位址? 11/25 22:53
shec1213:你應該是要取 R 這個陣列的起始位址 11/25 22:56
honamida:我改成&(R[0][0])了 不過只有矩陣第一列會有正確答案@@ 11/25 22:58
shec1213:add1為什麼又宣告了一個 *p? 應該直接把結果寫進R裡 11/26 00:15
shec1213:而且那個p沒有配置記憶體空間 11/26 00:15

你可能也想看看

搜尋相關網站