C++中的双重指针(double pointer)通常用于指向数组、结构体或其他复杂数据结构。以下是一些使用双重指针进行内存管理的技巧:
int** create2DArray(int rows, int cols) {
int** array = new int*[rows];
for (int i = 0; i < rows; ++i) {
array[i] = new int[cols];
}
return array;
}
class Node {
public:
int data;
Node* next;
};
Node** createLinkedList(int size) {
Node** head = new Node*[size];
for (int i = 0; i < size; ++i) {
head[i] = new Node();
head[i]->data = i;
head[i]->next = nullptr;
}
return head;
}
void swap(int** a, int** b) {
int* temp = *a;
*a = *b;
*b = temp;
}
void traverse2DArray(int** array, int rows, int cols) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cout << array[i][j] << " ";
}
cout << endl;
}
}
在使用双重指针进行内存管理时,需要注意内存分配和释放。确保在不再需要动态分配的内存时释放它,以避免内存泄漏。