30/09/2018, 19:18 
               
            Hỏi lỗi cấp phát bộ nhớ động cho mảng 2 chiều
đề bài: Nhập hai ma trận, hiển thị ma trận tổng, sử dụng cấp phát bộ nhớ động cho mảng hai chiều?
e thử chạy chương trình, nhập ma trân bình thường nhưng đến phần hiện ma trận bị lỗi
e sử dụng code:block
mong mn  giúp đỡ
   #include <iostream>
using namespace std;
void nmt( int **a, int h, int d);             // hàm nhập ma trận
void cmt( int **a, int **b,int **c, int h, int d);        //hàm cộng ma trận
void hmt (int **a, int h, int d);            // hàm in ma trận
void xmt(int **a,int h);            //hàm xóa ma trận
int main()
{
    int h, d;
    int **a, **b, **c;              //các ma trận a,b,c
    cout<<"Nhap so hang cua ma tran:  ";
    cin>>h;             //số hàng
    cout<<"
Nhap so cot cua ma tran: ";
    cin>>d;             //số cột
    cout<<"Nhap ma tran A: "<<endl;
    nmt(a,h,d);
    cout<<"Nhap ma tran B: "<<endl;
    nmt(b,h,d);
    cmt(a,b,c,h,d);     //tinh tong hai ma tran
    cout<<"Ma tran tong la: "<<endl;
    hmt(c,h,d);
    xmt(a,h);
    xmt(b,h);
    xmt(c,h);
    return 0;
}
void nmt(int **a, int h, int d)
{
    a= new int*[d];
    for(int i=0;i<h;i++)
    {
        a[i] = new int[h];
        for(int j=0;j<d;j++)
            {
                cout<<"
Nhap phan tu hang "<<i+1<<"cot "<<j+1 <<" : ";
                cin>> a[i][j];
            }
    }
    return;
}
void hmt(int **a, int h, int d)
{
    for(int i=0;i<h;i++)
        for(int j=0;j<d;j++)
        {
            cout<<" "<< a[i][j] <<" ";
            cout<<endl;
        }
    return;
}
void cmt(int **a, int **b, int **c, int h, int d)
{
    for(int i=0;i<h;i++)
    for(int j=0;j<d;j++)
    c[i][j] = ( a[i][j]+b[i][j]);
}
void xmt(int **a, int h)
{
    for(int i=0;i<h;i++) delete [] a[i];
    delete [] a;
    return;
}
            Bài liên quan
         
                
            




Mình ghi lỗi trên phần reply, bạn xem thử có đúng không.
cám ơn bạn, munhf sửa lại nhưng vẫn chưa chạy đc
}Đâu phải chuyển h thành d rồi d thành h đâu
cấp phát d con trỏ thì lặp d lần để cấp phát tiếp cho d con trỏ tiếp chứ
đại khái là như thế
à, ý mình là h là hàng, còn d là cột, nên mihf muốn h trước d, nghĩa là haanfd trước cột
còn bạn sửa là cột trc hàng, mình nghĩ chắc cũng tương tự