下面是一個代碼剪斷,我有一個更大的計劃指針在C/C++編譯但給人段錯誤錯誤
double *pos_x_h[224];
double *pos_y_h[224];
const double A = 1;
const int N = 224;
double d_0;
double alpha;
void initialize(double nu, int rows = 16, int columns = 14) {
double d = 1/double(columns);
d_0 = d * (1 - pow(2.0, nu - 8));
alpha = d - d_0;
double dx = d;
double dy = d * sqrt(3.0)/2;
for (int j = 0; j < rows; j++) {
for (int i = 0; i < columns; i++) {
int n = i + j * columns;
*pos_x_h[n] = i * dx + (j % 2) * dx/2.0;
*pos_y_h[n] = j * dy;
}
}
}
int main(int argc, char *argv[]) {
double nu=7.5;
int rows=16;
int columns=14;
initialize(nu);
return 0;
}
代碼編譯,但它是給出了賽格故障錯誤。看不到這是爲什麼。我要通過array_size嗎?
'I + J * columns'會清醒地訪問超出數組界限的元素。 – devnull
'void initialize(double nu,int rows = 16,int columns = 14);''和'initialize(nu);'? – someuser
您聲明瞭2個指針數組,但從不初始化它們。 –