進入禁止
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;
}