01/10/2018, 11:43

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 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<<” ";
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;
}

HK boy viết 13:55 ngày 01/10/2018

Bạn làm mình muốn khóc quá :’(

for (int i=1; i<=d.m;i++) d.data[d.m] = new int[d.n];
for (int i= 1; i<= d.m; i++)

Mảng trong C++ bắt đầu từ bao nhiêu hả bạn?

Việt viết 13:51 ngày 01/10/2018

a ơi e debug đủ kiểu ạ. để từ 0 vẫn sai ạ
để e chỉnh lại

HK boy viết 13:53 ngày 01/10/2018

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?

Việt viết 13:46 ngày 01/10/2018

em vẫn ko hiểu lắm. d.n và d.n là kết thúc r phải ko a

HK boy viết 13:53 ngày 01/10/2018

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?
Việt viết 13:45 ngày 01/10/2018

a có thể fix giúp em đc ko ạ. e mông lung quá

HK boy viết 13:59 ngày 01/10/2018

Bạn không trả lời câu hỏi của mình mà muốn mình fix bug giùm?

Việt viết 13:49 ngày 01/10/2018

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

HK boy viết 13:54 ngày 01/10/2018

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.

Việt viết 13:58 ngày 01/10/2018

e mới học lập trình thôi a. có gì a thông cảm ạ

HK boy viết 13:50 ngày 01/10/2018

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.

Việt viết 13:53 ngày 01/10/2018

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

Bài liên quan
0