错误方法
const char* array[] = {"This", "is", "an", "array"};
char** address = array;
for (int i = 0; address && address[i]; i++)
{
cout << address[i] << endl;
}
运行结果

跟踪 for 循环中的 i 变量可以发现 i 实际上已经超过了数组中的元素个数,造成了访问越界
正确方法
const char* array[] = {"This", "is", "an", "array"};
for (int i = 0; i < sizeof(array) / sizeof(char*); i++)
{
cout << array[i] << endl;
}
这篇博客探讨了在C++中遍历`char*`数组或`char**`时可能出现的越界错误。作者通过错误方法的示例展示了如何引发访问越界的问题,并提供了正确的遍历方式,以确保安全地操作这些类型的数组。
1178

被折叠的 条评论
为什么被折叠?



