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: \n";
cout<<"nhap so hang cua ma tran m
n: m= “; cin>>d.m;
out<<d.m<<” “;
cout<<endl;
cout<<“nhap so cot cua ma tran mn: n= “; cin>>d.n;
out<<d.n<<”\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<<”\n";
}
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: \n";
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?

1 Like

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:

  • Chỉ số bắt đầu của mảng của bạn là gì?
  • Mảng của bạn có bao nhiêu phần tử?
  • Theo toán lớp 4, bạn có tính được chỉ số kết thúc của mảng hay không?

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? :flag_black:

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 ~~

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?