[問題] 傳遞二維陣列給function

看板C_and_CPP (C/C++)作者時間13年前 (2013/01/23 01:38), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
#include <stdio.h> #include <stdlib.h> void t(int* a, int* b) { for (int i=0;i<2;i++) { b[i]=a[i]+3; } } int main() { int a[2]={1,1}; int b[2]={0,0}; t(a,b); for(int i = 0; i<2;i++) printf("%d \t", b[i]); system("pause"); return 0; } 如程式碼 如果我將 a,b 改成 2x2的矩陣 a={{1,1},{1,1}} b=2x2 的零矩陣 同樣將兩矩陣相加 則 t(a,b)這行就會出錯 必須寫成 t(&a[0][0],&b[0][0]) 才可以 請問原因是為什麼呢?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.200.84

01/23 01:45, , 1F
int(*)[2] != int *
01/23 01:45, 1F
文章代碼(AID): #1G_iwnpG (C_and_CPP)
文章代碼(AID): #1G_iwnpG (C_and_CPP)