Lỗi cấp phát động mảng 2 chiều: bị stop working khi nhập mảng
#include
#include
using namespace std;
struct matran
{
int m,n;
int **data;
};
void nhapM_N ( matran &d, fstream &out, matran &a, matran &b)
{
cout<<“nhap kich thuoc cua ma tran mn:
";
cout<<"nhap so hang cua ma tran mn: m= “; cin>>d.m;
out<<d.m<<” “;
cout<<endl;
cout<<“nhap so cot cua ma tran mn: n= “; cin>>d.n;
out<<d.n<<”
";
cout<<endl;
a.m= d.m; b.m=d.m; a.n= d.n; b.n=d.n;
}
void NhapPhanTu( matran &d, fstream &out)
{
d.data = new int[d.m];
for (int i=0; i<d.m;i++) d.data[d.m] = new int[d.n];
for (int i= 0; i< d.m; i++)
{
for (int j= 0; j< d.n; j++)
{
cout<<”[”<<i<<”]["<<j<<"]=";
cin>>d.data[i][j];
cout<<d.data[i][j]<<endl;
out<<d.data[i][j]<<" “;
}
cout<<endl;
};
out<<”
";
}
int main()
{
fstream in, out;
matran d,a,b;
out.open(“matran.inp.txt”, ios::out);
nhapM_N(d,out,a,b);
cout<<“nhap phan tu ma tran”<<d.m<<"*"<< d.n<<" thu 1:
";
NhapPhanTu(a,out);
out.close();
for(int i = 0; i < a.m ; i++) delete[] a.data[i];
delete[] a.data;
return 0;
}
Bạn làm mình muốn khóc quá :’(
Mảng trong C++ bắt đầu từ bao nhiêu hả bạn?
a ơi e debug đủ kiểu ạ. để từ 0 vẫn sai ạ
để e chỉnh lại
Nếu bạn xác định được chỉ số bắt đầu của mảng và số lượng phần tử thì bạn có xác định chỉ số kết thúc của mảng không?
em vẫn ko hiểu lắm. d.n và d.n là kết thúc r phải ko a
Trả lời 3 câu hỏi:
a có thể fix giúp em đc ko ạ. e mông lung quá
Bạn không trả lời câu hỏi của mình mà muốn mình fix bug giùm?
vd m=2, n=3
chỉ số bd là d.data[0][0] kêt thúc là d.data[2][3]
mảng có 6 ptu
Từ 0 -> 2 có 2 phần tử?
Từ 0 -> 3 có 3 phần tử?
Sai hết.
P/s: Mình chưa thấy ai như bạn luôn. Người ta format code của bạn lại cho đẹp, bạn lại bỏ cái đẹp để quay về hiển thị code không ai đọc được.
e mới học lập trình thôi a. có gì a thông cảm ạ
Giờ bạn đếm lại cho mình, từ 0 -> 2 có bao nhiêu phần tử? Từ 0 -> 3 có bao nhiêu phần tử? Trả lời được thì bạn tự debug được thôi.
e có chỉnh đủ mà cóp sang thì nó mất hết nên mới về thời nguyên thủy ~~