[問題] 雙重指標與二維陣列 for C
遇到的問題:
二維陣列當引數,雙重指標當參數。
無法Working....
希望得到的正確結果:
1.可以正確的使用二維陣列當引數。
2.可以正確的使用雙重陣列。
有問題的code:
1.二維陣列與雙重指標問題
2.假設問題1沒問題的話,這使用樣存取對嗎!?
#ifdef PAL_QCIF
#define Y_WIDTH 176
#define Y_HEIGHT 144
#define U_WIDTH 88
#define U_HEIGHT 72
#define V_WIDTH 88
#define V_HEIGHT 72
#endif
#define IMAGE_AMOUNT 1
#include "ReadImage.h"
unsigned char Y_space[Y_HEIGHT][Y_WIDTH];
unsigned char U_space[U_HEIGHT][U_WIDTH];
unsigned char V_space[V_HEIGHT][V_WIDTH];
int main(void)
{
int i;
long DataStreamOrign;
int BinarizedThreshold;
for(i = 0, DataStreamOrign = 0; i < IMAGE_AMOUNT; i++,
DataStreamOrign += (Y_WIDTH*Y_HEIGHT + U_WIDTH*U_HEIGHT + V_WIDTH*V_HEIGHT)){
ReadImage(Y_space, Y_WIDTH, Y_HEIGHT, DataStreamOrign);
}
system("PAUSE");
return 0;
}
--------------------------ReadImage.h-------------------------
extern void ReadImage(unsigned char **, int, int, long);
--------------------------ReadImage.c-----------------------
#include <stdio.h>
#include "ReadImage.h"
void ReadImage(unsigned char **pImage, int nWidth, int nHeight,
long DataStreamOffset)
{
int i, j;
FILE *fp = 0;
if(fp = fopen("C:\\VC06022010\\1.yuv", "rb")){
fseek(fp, DataStreamOffset, SEEK_SET);
for(i = 1; i < nHeight; i++)
for(j = 1; j < nWidth; j++){
fread( *(pImage + i) + j , 1, 1, fp);
}
}
else
printf("Open the file was failed!");
fclose(fp);
return;
}
開發平台:
VC++、Dec C++
程式跑出來的錯誤結果
argument of type "unsigned char( * )[176] is incompatible with parameter of typ "unsigned char **"
補充說明:
抱歉,新手上路。
除了上述問題之外如果在寫作方式上有何不妥也多多指教。
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.240.245.74
推
06/02 19:59, , 1F
06/02 19:59, 1F
→
06/02 20:00, , 2F
06/02 20:00, 2F
感謝d大:加上上述的原型宣告即可。
推
06/03 00:14, , 3F
06/03 00:14, 3F
感謝s大:這樣變成取值,所以還是要用*(pImage + i)+j給址。
※ 編輯: MaconChou 來自: 219.84.61.250 (06/05 05:21)