0
다음과 같이하고 싶습니다. 3x1 행렬에 3x3 행렬을 곱합니다. 내 1 차원 배열을 2 차원으로 변환하려고합니다. 그리고 나는 이것이 괜찮다고 생각하지만, 나중에 곱셈을하면 에러가 난다. 하지만 왜 그런지 모르겠습니다. 여기 내 코드가있다.C++ 행렬 곱셈 다른 차원
// 20 -20 0 150
//-20 40 -20 x 0
// 0 -20 30 400
int n = 3;
double *tab_P = new double [n];
tab_P[0] = 150;
tab_P[1] = 0;
tab_P[2] = 400;
double **tab_H;
tab_H = new double* [n];
for(int i=0; i<n; i++)
tab_H[i] = new double[n];
tab_H[0][0] = 0.2;
tab_H[0][1] = 0.15;
tab_H[0][2] = 0.1;
tab_H[1][0] = 0.15;
tab_H[1][1] = 0.15;
tab_H[1][2] = 0.1;
tab_H[2][0] = 0.1;
tab_H[2][1] = 0.1;
tab_H[2][2] = 0.1;
double **tmp_P;
tmp_P = new double *[n];
for(int i=0; i<n; i++)
tmp_P[i] = new double [1];
for(int i=0; i<n; i++){
for(int j=0; j<1; j++) {
tmp_P[i][j] = tab_P[i];
}
}
double **result = new double * [n];
for(int i=0; i<n; i++)
result[i] = new double [1];
int i,j,k;
int s = 0;
for(i=0; i<n; i++) {
for(j=0; j<1; j++) {
s = 0;
for(k =0; k<n; k++)
s += tab_H[i][k] * tmp_P[k][j];
result[i][j];
}
}
* tab_P에 대한 메모리는 어디에서 할당 했습니까? 그리고 다시 무엇이 오류인지, 곱셈 결과입니까? 또는 1D 배열? – theAlias
@theAlias 그는 정상에서 바로 그 역할을했습니다. 단지 1 차원 배열입니다. – cmaster
끝에 루프의 어딘가에 오류가 발생합니다. 액세스 위반 읽기 위치 .... 나는 루프의 인덱스에 문제가 있다고 생각하지만 어디에서 볼 수없는 것입니다. – Madbrush