Giải pháp 1:
Công việc cấp phát động mảng 2 chiều trong C++ dịch sang tiếng Việt có nghĩa là "allocate dynamic 2D array in C++." Việc cấp phát một mảng 2 chiều động trong C++ liên quan đến việc sử dụng con trỏ để tạo ra một ma trận có thể có kích thước biến đổi. Dưới đây là một đoạn mã ví dụ trình bày cách cấp phát động một mảng 2 chiều trong C++ và một ví dụ về cách sử dụng nó:
#include int main() { // Xác định kích thước của mảng 2 chiều int rows, cols; std::cout << "Nhập số hàng: "; std::cin >> rows; std::cout << "Nhập số cột: "; std::cin >> cols; // Cấp phát bộ nhớ động cho mảng 2 chiều int** dynamicArray = new int*[rows]; for (int i = 0; i < rows; ++i) { dynamicArray[i] = new int[cols]; } // Khởi tạo mảng 2 chiều với các giá trị int value = 1; for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { dynamicArray[i][j] = value++; } } // Hiển thị mảng 2 chiều std::cout << "Mảng 2D động:\n"; for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { std::cout << dynamicArray[i][j] << "\t"; } std::cout << "\n"; } // Giải phóng bộ nhớ cho mảng 2 chiều for (int i = 0; i < rows; ++i) { delete[] dynamicArray[i]; } delete[] dynamicArray; return 0; }
Trong ví dụ này, người dùng được yêu cầu nhập số hàng và số cột cho mảng 2 chiều. Chương trình sau đó cấp phát bộ nhớ cho mảng, khởi tạo giá trị cho các phần tử và hiển thị nội dung. Cuối cùng, chương trình giải phóng bộ nhớ để tránh rò rỉ bộ nhớ.
Lưu ý rằng quản lý bộ nhớ động đến với các trách nhiệm và trong một kịch bản thực tế, bạn có thể muốn sử dụng con trỏ thông minh hoặc các kỹ thuật quản lý bộ nhớ khác để đảm bảo việc giải phóng tài nguyên đúng cách.
Giải pháp 2:
Giải thích chi tiết về cấp phát mảng 2 chiều trong C++
Trong C++, một mảng 2 chiều là một cấu trúc dữ liệu lưu trữ dữ liệu trong một bảng hai chiều. Mỗi phần tử của mảng được truy cập bằng hai chỉ số, một chỉ số hàng và một chỉ số cột. Chỉ số hàng chỉ ra hàng mà phần tử đó nằm, và chỉ số cột chỉ ra cột mà phần tử đó nằm.
Để cấp phát một mảng 2 chiều trong C++, bạn có thể sử dụng cú pháp sau:
int array[rows][columns];
Ở đây, rows
là số hàng trong mảng và columns
là số cột trong mảng.
Ví dụ, đoạn mã sau cấp phát một mảng 2 chiều với 3 hàng và 4 cột:
int array[3][4];
Sau khi bạn đã cấp phát một mảng 2 chiều, bạn có thể truy cập các phần tử của mảng bằng cú pháp sau:
array[row][column];
Ở đây, row
là chỉ số hàng của phần tử bạn muốn truy cập, và column
là chỉ số cột của phần tử bạn muốn truy cập.
Ví dụ, đoạn mã sau in ra giá trị của phần tử ở giao điểm của hàng 1 và cột 2:
cout << array[1][2] << endl;
Kết quả:
5
Kết luận
Trong bài viết này, chúng tôi đã cung cấp một giải thích chi tiết về cách cấp phát mảng 2 chiều trong C++. Chúng tôi cũng đã cung cấp các ví dụ mã để minh họa cách cấp phát và truy cập mảng 2 chiều trong C++.