📅  最后修改于: 2023-12-03 15:07:37.761000             🧑  作者: Mango
在C++中,指针数组是由指针类型元素组成的数组。每个元素都是指向特定类型的内存地址的指针。
创建指针数组需要先确定数组的大小和指针类型。下面是一个示例代码片段,在该代码片段中创建了一个包含5个整数指针的指针数组。
int* ptrArr[5]; // 创建一个指向整数类型的指针数组,该数组包含5个指针
可以使用初始化列表为指针数组中的每个指针分配内存:
int var1 = 1, var2 = 2, var3 = 3, var4 = 4, var5 = 5;
int* ptrArr[5] = { &var1, &var2, &var3, &var4, &var5 }; // 初始化指针数组,使每个指针指向不同的整数变量
还可以选择延迟初始化,即在程序的运行时动态地为指针数组分配内存:
int* ptrArr[5];
for (int i = 0; i < 5; i++) {
ptrArr[i] = new int; // 为该指针分配内存,并将其初始化为零
*ptrArr[i] = 0;
}
在这个例子中,指针数组中的每个指针都指向一个未初始化的整数变量。
可以像访问普通数组中的元素一样访问指针数组中的元素。例如,以下片段从上面的指针数组中访问了第一个元素并输出了其值:
std::cout << *ptrArr[0] << std::endl;
由于指针数组分配了内存,因此需要在程序的结尾处删除它们以避免内存泄漏。可以使用下面的代码片段进行删除:
for (int i = 0; i < 5; i++) {
delete ptrArr[i]; // 删除每个指针指向的内存块
}