30/09/2018, 20:49
mọi người giải thích cho em cái cơ chế tạo mảng 2 chiều này với ạ
#include <iostream> // std::cout
using namespace std;
int main()
{
int **a;
a = new int*[2];
for (int i = 0; i < 2; i++)
{
a[i] = new int[2];
}
a[0][0] = 1;
a[0][1] = 2;
a[1][0] = 3;
a[1][1] = 4;
cout << "a[0][0] = " << a[0][0] << endl;
cout << "a[0][1] = " << a[0][1] << endl;
cout << "a[1][0] = " << a[1][0] << endl;
cout << "a[1][1] = " << a[1][1] << endl;
return 0;
}
Bài liên quan
Để đơn giản về mảng hai chiều thì khi bạn viết [a][b] hãy tưởng tượng 1 tủ sách có a ngăn và mỗi ngăn có thể chứa b quyển sách :3 như vậy nếu chúng ta cần chỗ chứa sách thì bạn cần cung cấp cho cái gì ??? Chỉ cần cung cấp bộ nhớ cho cái ngăn thôi đúng không chứ ko cần phải cung cấp cho từng quyển sách vì nó sẽ được xếp vào ngăn mà :3
Đây chính là thao tác cung cấp bộ nhớ cho 2 ngăn chứa sách đó
bản chất của mảng 2 chiều là mảng một chiều
ý mình là cái cơ chế tại sao khi khai báo hàng là khai báo kiểu con trỏ của con trỏ
ví dụ:
int *a;
a = new int[2];
trong khi 1 chiều chỉ là con trỏ thôi
ví dụ:
int *a;
a = new int[2];