1
我有一個函數:爲什麼不能像這樣傳遞參數?
int getCaseNum(float isovalue,float *F,int **point,int *dims,float *F_value)
{
int digtial_point[8];
int case_num=0;
int i = 0;
for(i=0;i<8;i++)
{
F_value[i] = F[GetPointIndex(point[i],dims)];
if(F_value[i]>isovalue)
{
digtial_point[i] = 1;
case_num = case_num + powf(2,i);
}
else
{
digtial_point[i] = 0;
}
}
return case_num;
}
然後我想調用這個函數在另一個這樣的功能:
int pointID[8][3];
int case_num = getCaseNum(isovalue,F,pointID,dims,F_value);
然而,當我編譯我的代碼,它說:
/Users/liyuanliu/Documents/lecture/sicvis/final_6b/mc510/proj6B.cxx:862:24: error:
no matching function for call to 'getCaseNum'
int case_num = getCaseNum(isovalue,F,pointID,dims,F_value);
^~~~~~~~~~
/Users/liyuanliu/Documents/lecture/sicvis/final_6b/mc510/proj6B.cxx:816:5: note:
candidate function not viable: no known conversion from 'int [8][3]' to
'int **' for 3rd argument
int getCaseNum(float isovalue,float *F,int **point,int *dims,float *F_value)
^
爲什麼會發生這種情況?我不能像這樣傳遞參數嗎?
見[此](http://stackoverflow.com/questions/7586702/is-2d-array-a-double-pointer)問題。 – crayzeewulf
有明顯的類型不匹配。 2D陣列不是雙指針。 –