[問題] 傳遞二維陣列給function
#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
01/23 01:45, 1F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章