Mình đang học pointer to pointer thì đang thử code lại bài tập thì nó báo lỗi Unintialized variable used của hai con trỏ trỏ tới con trỏ là **A và **B, mình hiểu lỗi này là không khai báo giá trị cho nó nhưng mình tưởng khi tạo 2 con trỏ này cũng như tạo con trỏ bt ( *A, *B) thôi chứ, chỉ khác mỗi là trỏ tới chính nó 1 lần nữa?!
Code của mình đây:
//Test cấp phát động cho mảng nhiều chiều
#include <stdlib.h>
#include <ctype.h>
#include <iostream>
using namespace std;
void taomang(int **A, int dong, int cot);
void congmang(int **B, int **A, int dong, int cot);
void hienthimang(int **A, int dong, int cot);
void xoamang(int **A, int dong, int cot);
>
void taomang(int **A, int dong, int cot)
{
A = new int*[dong];
for (int i = 0; i < dong; i++)
{
A[i] = new int[cot];
}
for (int i = 0; i < dong; i++)
{
for (int j = 0; j < cot; j++)
{
cout << " Phan tu [" << i << "] [" << j << "] = ";
cin >> A[i][j];
}
}
return;
}
void congmang(int **A, int **B, int dong, int cot)
{
for (int i = 0; i < cot; i++)
for (int j = 0; j < dong; j++)
A[i][j] += B[i][j];
return;
}
void hienthimang(int **A, int dong, int cot)
{
for (int i = 0; i < cot; i++)
{
for (int j = 0; j < dong; j++)
cout << " A[" << i << "] [" << j << "] = ";
cout << endl;
}
return;
}
void xoamang(int **A, int dong)
{
for (int i = 0; i < dong; i++)
delete[] A[i];
delete[] A;
return;
}
int main()
{
int dong, cot,**A, **B;
cout << " Nhap so dong: ";
cin >> dong;
cout << " Nhap so cot: ";
cin >> cot;
cout << " Khoi tao mang A: ";
taomang(A, dong, cot);
cout << " Khoi tao bang B: ";
taomang(B, dong, cot);
cout << " Cong 2 ma tran A va B:";
congmang(A, B, dong, cot);
cout << " Tong A + B la: ";
hienthimang(A,dong, cot);
cout << " Xoa mang: ";
xoamang(A,dong);
xoamang(B, dong);
return 0;
}
nên cấp phát chỉ nằm trong hàm đó thôi.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?