[語法] 傳二維指標到副函式

看板C_and_CPP作者 (笨小孩)時間16年前 (2010/01/06 14:03), 編輯推噓2(209)
留言11則, 4人參與, 最新討論串1/1
我在程式開頭創了個二維陣列 int pic_buffer[240][320]=0; 然後我想用副函式來處理它,以下是我的副函式 void save_pic(FILE *ptr,int **buffer,int h,int v,int m) { int i=0,j=0,k=0,cnt=0; for(i=0;i<v;i++){ for(j=0;j<h;j++){ fread(&buffer[i][j],3,1,ptr);// get the infomation of pixel } if(m){ cnt=h%4; fseek(ptr,cnt,SEEK_CUR);// ignor infomation of pixel } } } 我在主程式裡這樣呼叫 save_pic(bmpptr,pic_buffer,ht,vt,miss); 之後編譯一直有錯顯示implicit cast of pointer to non-equal pointer 新手小弟我懇請各位大大指教ㄒ口ㄒ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.13.132.124

01/06 14:12, , 1F
void save_pic(FILE *ptr,int buffer[][320], int h,
01/06 14:12, 1F

01/06 14:13, , 2F
^^^^^^^^^^^^^^^^^
01/06 14:13, 2F

01/06 14:14, , 3F
月經題
01/06 14:14, 3F

01/06 14:17, , 4F
為什麼240不用打? 還有這樣不是又創一個320*240的空間
01/06 14:17, 4F

01/06 14:18, , 5F
嗎? 用指標指會不會比較省空間?
01/06 14:18, 5F

01/06 14:19, , 6F
那只是 type ....
01/06 14:19, 6F

01/06 14:21, , 7F
你傳的還是一個指標, 只是告訴他這個指標該怎麼用 (長、寬)
01/06 14:21, 7F

01/06 14:23, , 8F
假如沒告訴它, 那麼 buffer[1][1] 要取用哪個記憶體位置?
01/06 14:23, 8F

01/06 14:24, , 9F
你的 save_pic 會沒有資訊可以找出來, 給它一個 [320] 它就
01/06 14:24, 9F

01/06 14:24, , 10F
知道是 1*320 + 1
01/06 14:24, 10F

01/06 14:36, , 11F
了解,謝謝你
01/06 14:36, 11F
文章代碼(AID): #1BH2UUzA (C_and_CPP)