主要目标是从main()
函数复制构造函数中的数组。使用cin >>
真的很容易,但是我必须给构造函数一个已经定义的数组。编译程序时没有任何错误。仅在运行时它会因以下异常而失败:
引发未处理的异常:读取访问冲突。这个-> A是 0x1110112。
我已经尝试在类中定义这些数组,即使我知道这不是一个好习惯。但是我不能这样做,因为它将导致此类定义的另一个函数中的指针出错。这是到目前为止我得到的:
#include "pch.h"
#include <iostream>
#include <iomanip>
#define size 5
using namespace std;
class Matr
{
private:
//const int size = 5;
double **A;
double *B;
public:
Matr(double (*a)[size], double b[]) {
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
A[i][j] = a[i][j]; //here exception falls
}
B[i] = b[i];
}
}
};
int main()
{
double A[5][5] = { {-6,18,15,8,6},
{2,11,-18,17,23},
{-13,-2,8,-10,-5},
{1,13,11,-10,-5},
{10,21,8,-1,11} };
double B[5] = { 0,-8,1,-2,-6 };
Matr matr(A,B); //define the arrays
}
我想将此定义为类中的数组,以便在其他函数中使用它们。这有可能吗? :D
答案 0 :(得分:0)
在Matr
构造函数中,您应该使用A
为B
和new
分配内存。