【发布时间】:2013-12-18 11:36:41
【问题描述】:
我正在为多维数组尝试以下代码。它给出了SEG 错误
我不知道这是什么问题。
static void read(double **arr){
//REQ arr to be pointing to array[5][4]
//EFF prompt the use to input the data
//Mod array pointer by **arr
int i(0) , j(0);
double tmp ;
for(i=0 ; i<4 ; i++){
for(j=0 ; j<5 ; j++) {
cout <<"Please enter Data#"<< (j+1) << " File#" << (i+1) <<" "<<flush;
cin >> tmp ;
arr[j][i] = tmp ;
}
}
return ;
}
int main(){
double arr[5][4] ;
read(reinterpret_cast<double**>(arr) ) ;
}
我在这里做错了什么?
【问题讨论】:
-
C 中有 reinterpret_cast 吗?
-
@NishithJainMR 这不是 C。我不知道他为什么使用那个标签。
-
C++ 中的数组未实现为指向指针的指针。它被实现为内存的连续部分。所以
arr[2][3]更可能等同于arr + 2*(sizeof(int)*4) + 3*sizeof(int)
标签: c++ multidimensional-array pointers