Я пытаюсь использовать следующий код для многомерного массива. Это дает SEG
ошибка Я не знаю, в чем проблема.reinterpret_cast <double**> SEG fault
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)) ;
}
Что я здесь делаю неправильно?
Есть ли reinterpret_cast в C ? –
@NishithJainMR Это не C. Я не знаю, почему он использовал этот тег. – 0x499602D2
Массивы в C++ не реализованы как указатели на указатели. Он реализован как непрерывный раздел памяти. Итак, 'arr [2] [3]' С большей вероятностью будет эквивалентен 'arr + 2 * (sizeof (int) * 4) + 3 * sizeof (int)' –